WordPress主题增加发布文章主动推送百度保护原创文章收录

虫子君
虫子君
虫子君
390
文章
166
评论
2019.11. 813:01:23 评论 950 2470字阅读8分14秒

最近虫子君换上了春哥的主题B2主题,不过由于是主题是还处于初期作品,所以再一些功能方面还存在不完善的,这不,看到B2主题并没有百度主动推送,虫子君只好自己来动手。给B2主题增加一个主动推送到百度的功能。

之前虫子君一直使用的是插件,但是插件,每天都有烦人的广告,虽然有统计推送的次数,但是虫子君一般是不会看的,所以最终还是觉得可能单一的功能,会更适合自己。

由于现在大多数的用户都是使用的服务器了,所以关于虚拟机的代码这里会在文章的最后分享一段代码,如果您有需要尽情取走。

将以下代码粘贴到你的主题的function.php文件的最后一行即可。其中需要修改的地方是token值,虫子君也已经标记清楚。
//百度主动推送
if(!function_exists('Baidu_Submit')){
    function Baidu_Submit($post_ID) {
        $WEB_TOKEN  = 'MGtedxiWSczQp2WY';  //这里请换成你的网站的百度主动推送的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);
}

说说主动推送的重要性;

如果在乎SEO的站长一定优先考虑的是主动推送,毕竟这个功能太好用了,在一定条件下,主动推送是收录最快的,因为您每更新一篇文章主题会自动将你新文章的地址推送给百度,这是百度蜘蛛收到后就会来抓取你网页的内容,如果内容足够好,百度蜘蛛可以做到十分钟内收录你的容。

这是张哥大佬做的一个表格,非常的直观啊。

从以上的数据中,不难发现,可以确定一个问题,主动推送是网页收录最快的一种方式,不过您网站的sitemap.xml文件还是要有的,有一个静态的页面地址可以记录你的历史页面,最大化的保障蜘蛛来了以后有内容可以抓取。

验证代码是否生效

以上的代码中,有一个字段是“Baidusubmit”当你的文章推送以后,就会在你的文章编辑页面的自定义字段中,增加一个“Baidusubmit”值“1”这是已经推送成功的。

将代码成功放到你主题的function.php文件以后,可以对你的就文章重新更新一下,找到文章的自定义字段栏目,看看是否有“Baidusubmit:1”的字段,如果有就说明已经成功了。

以下代码来自张戈大佬,file_get_contents 方式

鉴于有个别站长反馈代码添加后,发布或更新文章,自定义栏目中都不会出现我们期望的baidusubmit,我要他们检查 token 和域名,也反馈是正确的,直到我亲自给一个站长Debug 时才发现是他主机的 curl_exec()函数被禁用了!既然这个函数都不能用了,那代码也肯定无法正常推送了!

于是,我额外写了一个普遍支持的 file_get_contents 方式,代码如下:

/**
* WordPress发布文章主动推送到百度,加快收录保护原创【file_get_contents方式】
* 文章地址:http://zhangge.net/5041.html
*/
if(!function_exists('Baidu_Submit')) {
    function Baidu_Submit($post_ID) {
        $WEB_TOKEN='xxxxxxxxx';  //这里换成你的网站的百度主动推送的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;
        $data = array (
            'http' => array (
                'method' => 'POST',
                'header'=> "Content-Type: text/plain",
                "Content-Length: ".strlen($url)."rn",
                'content' => $url
            )
        );
        $data = stream_context_create($data);
        $result = file_get_contents($api, false, $data);
        $result = json_decode($result,true);
        //如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
        if (array_key_exists('success',$result)) {
            add_post_meta($post_ID, 'Baidusubmit', 1, true);
        }
    }
    add_action('publish_post', 'Baidu_Submit', 0);
}

展开全文
虫子君
  • 版权声明: 发表于 2019.11. 813:01:23
  • 转载注明:https://chonzi.com/8149.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: