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');