之前百度官方出了一款 WordPress 的結構化數據即時推送插件,該款 WordPress 插件的作用是向百度提交結構化數據的 xml,幫助站點保證百度蜘蛛對站點的抓取頻率,但是推送頁面不保證收錄 (http://zhanzhang.baidu.com/schema/index),但是百度官方並沒有推出 Sitemap 的即時推送插件,其實 Sitemap 的即時推送才能最大幾率的保證站點的頁面被抓取並且被收錄,不過大多數站點並沒有開通 Sitemap 權限,以下是引用百度官方對即時推送的介紹:http://zhanzhang.baidu.com/wiki/215
好了進入正題,其實小編這次寫這篇教程是為一位認識了好幾年的基友寫的~~他的 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
加上以上代碼後發佈文章 WordPress 將會自動推送文章到百度的服務器~本站的博客聚集地即時推送以及評論福利的核心代碼都和本教程的代碼相似,下面來張薇曉朵四月份之前的推送列表截圖:

2014.12.28 補充
如果使用以上代碼出現報錯: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');