近在很多博客上都看到有關於WordPress集成百度實時推送的功能,雖然不知道具體效果如何,但是我想增加這個功能應該總不會是壞事吧,所以就給自己的站點添加試試
1、獲取token值
我們只需要登錄百度站長平臺》【鏈接提交】,在右邊的頁面中的“鏈接提交”中選擇需要添加百度實時推送功能的站點,然後就可以看到這個站點的token值了。
2、修改代碼,添加百度實時推送功能
把以下代碼中的token值(xxxxxxxxxxx)改爲我們第一步獲取的token值(其他的不用修改),然後把這些代碼添加到主題目錄下的 functions.php 文件最後一個?>之前即可。
/**
* WordPress發佈文章主動推送到百度,加快收錄保護原創【WordPress通用方式】
*/
if(!function_exists('Baidu_Submit')){
function Baidu_Submit($post_ID) {
$WEB_TOKEN = 'xxxxxxxxxxxxxxxxx'; //這裏請換成你的網站的百度主動推送的token值
$WEB_DOMAIN = get_option('home');
//已成功推送的文章不再推送
if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
$url = get_permalink($post_ID);
$api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
$request = new WP_Http;
$result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
$result = json_decode($result['body'],true);
//如果推送成功則在文章新增自定義欄目Baidusubmit,值爲1
if (array_key_exists('success',$result)) {
add_post_meta($post_ID, 'Baidusubmit', 1, true);
}
}
add_action('publish_post', 'Baidu_Submit', 0);
}
現在我們發佈新文章,文章地址就會被主動推送到百度。被成功推送的文章,將自動出現如下自定義欄目:
最後效果展示
豐收賺 http://fengzhia.com/
爲避免代碼重複推送的尷尬,如果你需要更新文章再次推送數據,那麼在保存/更新文章之前,刪除或修改這個自定義欄目即可再次被推送。
Ps:雖然,主動推送的各種方法都支持一次推送多條數據,從我個人的經驗來看,對於老文章沒必要再次推送,頻繁推送容易導致百度“翻臉”!