百度站长自动提交中有一种推送方式为主动推送,我看了网上的各种代码比如这个网站https://www.wuzuowei.net/12076.html
,都没办法实现,没办法,只能自己实现一个了。
WordPress百度主动推送代码
结合百度官方给出的范例,我结合上面那个网址,重新写了代码
将以下代码加入到你的function文件中最后?>
的位置,如果没有这个符号就直接放最后即可:
function Baidu_Submit(post_ID) {WEB_TOKEN = 'xxxxxxxxxxx'; //这里请换成你的网站的百度主动推送的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;urls = array(
url,
);ch = curl_init();
options = array(
CURLOPT_URL =>api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array(ch, options);result = curl_exec(ch);
//如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
if(strstr(result,"success") == FALSE){
add_post_meta(post_ID, 'Baidusubmit', -1, true);res_array = json_decode(result,true);
add_post_meta(post_ID, 'Baidusubmit_error', res_array["error"], true);
add_post_meta(post_ID, 'Baidusubmit_message', res_array["error"], true);
add_post_meta(post_ID, 'Baidusubmit_success_url_number', 0, true);
}else{
add_post_meta(post_ID, 'Baidusubmit', 1, true);res_array = json_decode(result,true);
add_post_meta(post_ID, 'Baidusubmit_success_url_number', $res_array["success"], true);
}
}
add_action('publish_post', 'Baidu_Submit');
添加之后在随便发一篇文章, 只要点更新就可以在自定义字段这里看到如下图:
Baidusubmit_success_url_number
代码一次性提交成功了多少个网址,因为他支持批量提交,我们每次提交一个,所以一般是1
我在刚刚的代码里加了如果提交失败的报错码,和报错信息。如果出问题你可以自己研究,或者联系我。
我的文章太多怎么办?
在这里,一页一页的权限,编辑,随便改个字段,我改的作者字段,一应用就ok啦(注意,这里应用的话首页幻灯就没有了,要重新添加下)
公众号
扫码订阅最新深度技术文,回复【资源】获取技术大礼包
评论