之前百度官方出了一款wordpress的结构化数据实时推送插件,该款wordpress插件的作用是向百度提交结构化数据的xml,帮助站点保证百度蜘蛛对站点的抓取频率,但是推送页面不保证收录(http://zhanzhang.baidu.com/schema/index),但是百度官方并没有推出Sitemap的实时推送插件,其实Sitemap的实时推送才能最大几率的保证站点的页面被抓取并且被收录,不过大多数站点并没有开通Sitemap权限,以下是引用百度官方对实时推送的介绍:http://zhanzhang.baidu.com/wiki/215
好了进入正题,其实小V这次写这篇教程是为一位认识了好几年的基友写的~~他的wordpress站点也百度站长平台的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');
将以上代码加入到当前使用的wordpress主题的functions.php文件中即可,记得替换$Push变量的值为你们的百度Sitemap实时推送接口调用地址,如果您的站点没有开通百度Sitemap权限则此代码不可用。
Sitemap实时推送接口获取地址:http://zhanzhang.baidu.com/sitemap/pingadd