首先在百度站长获取百度收录API的token,路径为资源提交-普通收录,复制保存token数值。
打开wordpress主题中的functions.php文件,将以下代码加入文件底部
/* WordPress 百度快速收录 API 提交代码 */
if(!function_exists('Baidu_Submit')){
function Baidu_Submit($post_ID) {
$WEB_TOKEN = '这里请换成你的网站的百度主动推送的token值'; //这里请换成你的网站的百度主动推送的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);
}
发布文章后如果推送成功则在文章新增自定义栏目Baidusubmit,值为1。
当后面重新编辑文章后,系统判断当 Baidusubmit 的值为1则不会在推送这篇文章。当需要重新推送的时候,比如更换了域名,那么使用下面的 SQL 语句批量将 Baidusubmit 的值修改为 0,当编辑或者更新文章后会再次推送。
UPDATE `wp_postmeta` SET `meta_value`='0' WHERE `meta_key` = 'Baidusubmit' # 批量设置文章状态为未推送;