图片待添加
图片待添加

WordPress SEO发布文章自动推送到百度

2020-03-07 16:56 分类:WordPress SEO教程 阅读(次阅读) 标签:,

之前写了一个理由百度的主动推送JS,下面还有一个WordPress大神张戈写的WordPress SEO发布文章主动推送到百度功能.
下面示范下如何WordPress添加文章主动推送到百度功能:

WordPress SEO发布文章主动推送到百度功能的好处:

有了主动推送就好多了,自己写的高质量原创文章发布,发布后就会推送到百度,从而告知了准确的原创来源,从而杜绝了抄袭者和原创者出现角色互换的尴尬!

先要前往百度站长平台获取你的站点密匙,获取百度站点密匙前需要添加网站:

wordpress seo教程:将网站提交到百度站长工具提高收录排名

相关文章:  WordPress SEO网站底部添加百度自动推送收录代码

与这篇WordPress SEO网站底部添加百度自动推送收录代码并无冲突可以都加上

WordPress SEO发布文章主动推送到百度步骤一:获取站点密匙

添加好网站后点击左侧菜单的链接提交:

然后往下拉 选择主动推送,这段=后面的站点密匙复制

WordPress SEO发布文章主动推送到百度步骤二:添加代码

打开当前WordPress主题开发functions.php文件,在<?php下面的?>前面添加如下代码:

/**
* WordPress发布文章主动推送到百度,加快收录保护原创【WordPress通用方式】
* 文章地址:https://zhang.ge/5041.html
*/
if(!function_exists('Baidu_Submit')){
    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;
        $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);
}

这段WordPress SEO发布文章主动推送到百度代码的功能解释:

发布文章主动推送到百度.

如果该文章已有Baidusubmit字段则不再主动推送.

添加在WordPress主题开发functions.php文件如本图:

WordPress SEO发布文章主动推送到百度步骤二:添加代码

然后上传覆盖当前WordPress主题开发functions.php文件.

WordPress SEO发布文章主动推送到百度步骤三:检查功能是否实现

我们在后台添加文章后点发布后,文章底部会生成有一段自定义字段,请看下图.

WordPress SEO发布文章主动推送到百度步骤三:检查功能是否实现

你可以在链接提交里面看到百度的数据提交统计:

你可以在链接提交里面看到百度的数据提交统计

如果本段代码没有生成 Baidusubmit自定义字段,可能是自定义字段没有打开:

而自定义字段功能默认是没有打开的,下面我示范下如何打开:

需要你在每篇文章添加keywords自定义字段,而自定义字段功能默认是没有打开的,下面我示范下如何打开

还是没有显示的话可能是主机的 curl_exec()函数被禁用了!既然这个函数都不能用了,那代码也肯定无法正常推送了!

试试 file_get_contents 方式,代码如下:

/**
* WordPress发布文章主动推送到百度,加快收录保护原创【file_get_contents方式】
* 文章地址:https://zhang.ge/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);
}

Ps:file_get_contents 的运行效率应该是略低于curl的,不过就推送一条数据,就基本没有差别啦!如果你使用方式一没有成功,那么就试试 file_get_contents 方式吧!

本文并没有张戈大神写的原文详细,你可以输入代码头部的原文链接查看相关代码解释.


本文地址: https://www.wpyi.com/baidu-zidong.html