A-A+
wordpress 集成百度 Sitemap 实时推送接口代码
百度的官方很早就出了一款 wordpress 结构化数据实时推送的插件,这款插件的作用就是让 wordpress 的使用者向百度提交结构化的数据 xml,帮助站点让百度蜘蛛进行更好的抓取,但百度官方给出的说法是不保证 wordpress 推送的页面一定收录,其实这跟自己进行 ping 是差不多的,但是其官方又没有推出 sitemap 的实时推送插件,其实 sitemap 的实时推送效果要更好一些,更容易被百度抓取掉,应该说几率更大些吧,但 wordpress 大多数的站点又没有开通百度 sitemap 的权限。
下面夏日博客给出一段代码,当然是要有 sitemap 百度站长平台的 sitemap 权限的,代码如下:
- function PushBaiDu($post_id,$post){
- //百度推送接口地址
- $Push = '百度推送接口地址';
- $PushUrl = get_permalink($post_id);
- $PushDate = $post->post_data;
- //构造推送xml数据
- $PushXml = '<?xml version="1.0" encoding="UTF-8"?>
- <urlset>
- <url>
- <loc><![CDATA['.$PushUrl.']]></loc>
- <lastmod>'.$PushDate.'</lastmod>
- <changefreq>daily</changefreq>
- <priority>0.9</priority>
- </url>
- </urlset>';
- //创建http请求对象
- $wp_http_obj = new WP_Http();
- //发送http post请求提交xml数据
- return $wp_http_obj->post($Push, array('body' => $PushXml, 'headers' => array('Content-Type' => 'text/xml')));
- }
- add_action('publish_post', 'PushBaiDu');
将这段代码放入到主题 functions.php 文件中,记得替换$Push变量的值为你们的百度Sitemap实时推送接口调用地址,如果您的站点没有开通百度Sitemap权限则此代码不可用。
Sitemap实时推送接口获取地址:http://zhanzhang.baidu.com/sitemap/pingadd
因为根据每个 wordpress 版本的不同,可能上述代码会出现 Warning: Missing argument 2 for PushBaiDu(),的错误,可更换如下代码尝试:
- function PushBaiDu(){
- global $post_id;
- global $post;
- //百度推送接口地址
- $Push = '百度推送接口地址';
- $PushUrl = get_permalink($post_id);
- $PushDate = $post->post_data;
- //构造推送xml数据
- $PushXml = '<?xml version="1.0" encoding="UTF-8"?>
- <urlset>
- <url>
- <loc><![CDATA['.$PushUrl.']]></loc>
- <lastmod>'.$PushDate.'</lastmod>
- <changefreq>daily</changefreq>
- <priority>0.9</priority>
- </url>
- </urlset>';
- //创建http请求对象
- $wp_http_obj = new WP_Http();
- //发送http post请求提交xml数据
- return $wp_http_obj->post($Push, array('body' => $PushXml, 'headers' => array('Content-Type' => 'text/xml')));
- }
- add_action('publish_post', 'PushBaiDu');