WordPress主动推送到百度收录

2020年2月21日 评论 221 views 1538字阅读5分7秒

百度站长自动提交中有一种推送方式为主动推送,我看了网上的各种代码比如这个网站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啦(注意,这里应用的话首页幻灯就没有了,要重新添加下)

小熊