wordpress集成百度Sitemap实时推送代码

之前百度官方出了一款wordpress的结构化数据实时推送插件,该款wordpress插件的作用是向百度提交结构化数据的xml,帮助站点保证百度蜘蛛对站点的抓取频率,但是推送页面不保证收录(http://zhanzhang.baidu.com/schema/index),但是百度官方并没有推出Sitemap的实时推送插件,其实Sitemap的实时推送才能最大几率的保证站点的页面被抓取并且被收录,不过大多数站点并没有开通Sitemap权限,以下是引用百度官方对实时推送的介绍:http://zhanzhang.baidu.com/wiki/215

好了进入正题,其实小V这次写这篇教程是为一位认识了好几年的基友写的~~他的wordpress站点也百度站长平台的Sitemap权限,但是又不知道如何来操作百度Sitemap的实时推送~好了闲话就不多说了~直接上代码:

function PushBaiDu($post_id,$post){
//百度推送接口地址
    $Push = '百度推送接口地址';
    $PushUrl = get_permalink($post_id);
    $PushDate = $post->post_data;
//构造推送xml数据
    $PushXml = '<?xml version="1.0" encoding="UTF-8"?>
    <urlset>
        <url>
            <loc><![CDATA['.$PushUrl.']]></loc>
            <lastmod>'.$PushDate.'</lastmod>
            <changefreq>daily</changefreq>
            <priority>0.9</priority>
        </url>
    </urlset>';
//创建http请求对象
    $wp_http_obj = new WP_Http();
//发送http post请求提交xml数据
    return $wp_http_obj->post($Push, array('body' => $PushXml, 'headers' => array('Content-Type' => 'text/xml')));
}
add_action('publish_post', 'PushBaiDu');

将以上代码加入到当前使用的wordpress主题的functions.php文件中即可,记得替换$Push变量的值为你们的百度Sitemap实时推送接口调用地址,如果您的站点没有开通百度Sitemap权限则此代码不可用。

Sitemap实时推送接口获取地址:http://zhanzhang.baidu.com/sitemap/pingadd

加上以上代码后发布文章wordpress将会自动推送文章到百度的服务器~本站的博客聚集地实时推送以及评论福利的核心代码都和本教程的代码相似,下面来张维7维3四月份之前的推送列表截图:

wordpress集成百度Sitemap实时推送代码-wordpress教程-代码笔记

2014.12.28补充

如果使用以上代码出现报错:Warning: Missing argument 2 for PushBaiDu(),请将代码改成以下版本:

function PushBaiDu(){
    global $post_id;
    global $post;
//百度推送接口地址
    $Push = '百度推送接口地址';
    $PushUrl = get_permalink($post_id);
    $PushDate = $post->post_data;
//构造推送xml数据
    $PushXml = '<?xml version="1.0" encoding="UTF-8"?>
    <urlset>
        <url>
            <loc><![CDATA['.$PushUrl.']]></loc>
            <lastmod>'.$PushDate.'</lastmod>
            <changefreq>daily</changefreq>
            <priority>0.9</priority>
        </url>
    </urlset>';
//创建http请求对象
    $wp_http_obj = new WP_Http();
//发送http post请求提交xml数据
    return $wp_http_obj->post($Push, array('body' => $PushXml, 'headers' => array('Content-Type' => 'text/xml')));
}
add_action('publish_post', 'PushBaiDu');

wordpress集成百度Sitemap实时推送代码》上有35条评论

  1. 饼饼饼饼

    弱弱的问一句,这些中文字“//百度推送接口地址//构造推送xml数据//创建http请求对象//发送http post请求提交xml数据”句子也算代码一部分么,要一起复制进去么,谢谢 🙂

    回复
    1. 小V 文章作者

      :mrgreen: 没打算更新。。。不过貌似很多小伙伴用了我的cdn也说了这个更新问题,看来近期得更新一次了 ➡

      回复
  2. 奔驰哥

    添加代码后,发布文章时,出现错误,请问是什么原因。如何解决呢?
    Warning: Missing argument 2 for PushBaiDu() in /functions.php on line 1094
    Warning: Cannot modify header information – headers already sent by (output started at /functions.php:1094) in /post.php on line 235

    回复
    1. 奔驰哥

      Warning: Cannot modify header information – headers already sent by (output started at /functions.php:1094) in /pluggable.php on line 1121

      由于评论字数限制,我把文件路径省略了。帮忙看看,谢谢

      回复
      1. 奔驰哥

        升级到4.1之后,再试,发布文章的时候提示一下代码:
        Warning: Missing argument 2 for PushBaiDu() in /functions.php on line 1122

        Warning: Cannot modify header information – headers already sent by (output started at //functions.php:1122) in //public_html/wp-includes/pluggable.php on line 1178 (文件路径省略)

        回复
  3. 浪子

    战长你好,最近发现百度有个主动推送.你看看是个啥情况?推送数据方法.推送接口
    接口调用地址:http://data.zz.baidu.com/urls?site=www.******.com&token=**********

    回复
  4. xue

    GoEasy支持Java后台推送,JS推送,Android推送,兼容浏览器有IE6,7,8,9,10,11, Firefox, safari, chrome,推送稳定,速度快,上手快,文档齐全。
    GoEasy官网:goeasy.io
    快速入门:goeasy.io/www/started.jsp
    文档:goeasy.io/www/docs.jsp

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注