纯代码实现WordPress站点文章自动提交熊掌号教程

投稿   懿古今  2017-12-05 11:59:12  153 人阅读  18 条评论

投放广告联系   诚邀合作伙伴   赞助我们   垃圾评论惩罚

最近百度站长平台改版之后,以前的百度实时推送功能好像跟现在的熊掌号提交有冲突,而且为了跟上百度脚步,我们就很有必要把以前的百度实时推送改为熊掌号提交功能。今天我就Nana主题为例进行说明改造,希望能够起到抛砖引玉的作用。

纯代码实现WordPress站点文章自动提交熊掌号教程 WordPress 第1张

一、H5 页面结构化改造

1、在Nana主题的 \inc\functions\seo.php 文件中找到以下代码(大概在52行)

  1. <?php if ( is_single() ) { ?>

在它的下方添加以下代码

  1. <link rel="canonical" href="<?php the_permalink();?>"/>
  2. <script type="application/ld+json">
  3.         {
  4.             "@context""https://ziyuan.baidu.com/contexts/cambrian.jsonld",
  5.             "@id""<?php the_permalink();?>",
  6.             "appid""你的熊掌号ID",
  7.             "title""<?php echo trim(wp_title('',0)); ?>",
  8.             "images": [
  9.                 "<?php if ( get_post_meta($post->ID, 'wzshow', true) ){echo get_post_meta($post->ID, 'wzshow', true); }else{echo catch_image();} ?>"
  10.                 ],
  11.             "description""<?php if ( get_post_meta($post->ID, 'description', true) ){$xiongzhms= get_post_meta($post->ID, 'description', true);$xzhms=utf8Substr($xiongzhms,0,120);echo $xzhms; }else{$xzhmss=utf8Substr(trim($description),0,120);echo $xzhmss;} ?>",
  12.             "pubDate""<?php echo get_the_time('Y-m-d\TH:i:s');?>"
  13.         }
  14. </script>
  15. <script src="//msite.baidu.com/sdk/c.js?appid=你的熊掌号ID"></script>

添加后的代码如下:

纯代码实现WordPress站点文章自动提交熊掌号教程 WordPress 第2张

注意:

1、记得将以上代码中的『你的熊掌号ID』改为你自己真正的熊掌号ID,具体ID获取可以登录熊掌号后点击页面改造后即可看到,具体见下图:

纯代码实现WordPress站点文章自动提交熊掌号教程 WordPress 第3张

2、这个只是针对 Nana主题的,其他主题的话,一般都是将上述代码添加到主题的 header.php 文件中。

二、熊掌号内容/原创API提交

这里我们需要将 Nana主题原来的百度实时推送功能代码修改为自动提交到熊掌号中,具体打开 Nana主题的 functions.php 文件,找到以下代码:

  1. /**
  2. * WordPress发布文章主动推送到百度,加快收录保护原创【WordPress通用方式】
  3. */
  4. if(!function_exists('Baidu_Submit')){
  5.     function Baidu_Submit($post_ID) {
  6.         $WEB_TOKEN  = get_option('ygj_token_id');  //这里请换成你的网站的百度主动推送的token值
  7.         $WEB_DOMAIN = home_url();
  8.         //已成功推送的文章不再推送
  9.         if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
  10.         $url = get_permalink($post_ID);
  11.         $api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
  12.         $request = new WP_Http;
  13.         $result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
  14.         $result = json_decode($result['body'],true);
  15.         //如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
  16.         if (array_key_exists('success',$result)) {
  17.             add_post_meta($post_ID, 'Baidusubmit', 1, true);
  18.         }
  19.     }
  20.     add_action('publish_post', 'Baidu_Submit', 0);
  21. }

修改为

  1. /**
  2. * WordPress发布文章主动推送到百度熊掌号
  3. */
  4. if(!function_exists('Baidu_Submit')){
  5.     function Baidu_Submit($post_ID) {
  6.         //已成功推送的文章不再推送
  7.         if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
  8.         $url = get_permalink($post_ID);
  9.         $copy = get_post_meta($post->ID, 'wzurl', true);
  10.         if (empty($copy)) {
  11.         $api = 'http://data.zz.baidu.com/urls?appid=你的熊掌号ID&token=你的准入密钥&type=realtime,original';
  12.         }else{
  13.         $api = 'http://data.zz.baidu.com/urls?appid=你的熊掌号ID&token=你的准入密钥&type=realtime';   
  14.         }
  15.         $request = new WP_Http;
  16.         $result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
  17.         $result = json_decode($result['body'],true);
  18.         //如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
  19.         if (array_key_exists('success_realtime',$result)) {
  20.             add_post_meta($post_ID, 'Baidusubmit', 1, true);
  21.         }
  22.     }
  23.     add_action('publish_post', 'Baidu_Submit', 0);
  24. }

注意:

1、记得修改以上代码中的『你的熊掌号ID』和『你的准入密钥』,熊掌号ID和准入密钥在熊掌的内容提交 >> API提交中直接获得。

纯代码实现WordPress站点文章自动提交熊掌号教程 WordPress 第4张

2、这个代码利用了自定义字段 wzurl 来判断是原创还是非原创,根据Nana主题的设计,非原创文章都会有一个自定义字段 wzurl,它的值就是该篇文章来源URL地址,所以如果你在编辑文章的时候不填写编辑器下方的『原文链接地址』的话,哪怕是勾选了转载文章或者投稿文章也会按原创文章进行提交给熊掌号。介意的话自行修改以上代码的自定义字段 wzurl 即可。

纯代码实现WordPress站点文章自动提交熊掌号教程 WordPress 第5张

具体效果

我的熊掌号是用百家号账号绑定的,通过设置自动提交给熊掌号之后,懿古今和boke112导航两个站点发布的文章都会自动更新到我那个百家号,具体见下图:

纯代码实现WordPress站点文章自动提交熊掌号教程 WordPress 第6张

总结

本文只是在Nana主题的基础上进行修改,所以不一定适合其他主题(PS:WordPress版本的Blogs主题适用)。换句话的意思就是说其他主题如果想实现这个文章发布自动提交到熊掌号的话,可以参考《纯代码实现熊掌号H5页面结构化改造及数据提交插件》这篇文章。

如果文章对你有帮助,请赞赏支持作者继续创作!

历史上的今天:

文章标签: ,   ,  
原文地址:https://yigujin.cn/1405.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 懿古今 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!

 发表评论


  1. 重蔚自留地
    重蔚自留地 【秀才】 @回复

    我之前就是那个熊掌号不给通过,明天我试试这个方法。

  2. 历史笔记
    历史笔记 【小白】 @回复

    有没有接入zblog的教程

  3. 橘子书
    橘子书 【丞相】 @回复

    一想到一个个人站就需要一个熊掌,我不想动。

    • 懿古今
      懿古今【村长】2017-12-05 22:23  回复

      @橘子书[疑问] 不用啊,我就是一个熊掌号绑定两个站点的,现在两个站点都成功提交数据到熊掌号了

      • 橘子书
        橘子书 【丞相】2017-12-05 22:26  回复

        @懿古今我好像绑不了,只能绑定主域名下面的子域名

        • 懿古今
          懿古今【村长】2017-12-06 08:41  回复

          @橘子书熊掌号内容源说明:后续添加的内容源必须是该主域名下的站点,我当初添加的时候好像没有这个,所以yigujin.cn和boke112.com都绑定成功了,而且我那个百家号确实能够看到两个站点提交过去的文章。

  4. 明月登楼
    明月登楼 【王爷】 @回复

    呵呵,熊掌号越早接入越好的了!

  5. 清秋暖冬
    清秋暖冬 【秀才】 @回复

    刚出来的时候申请的熊掌号资格,不过到现在都没上传信息激活

    • 懿古今
      懿古今【村长】2017-12-05 21:56  回复

      @清秋暖冬[嘻嘻] 还好,我直接用百家号登录,当年申请有百家号,可惜当初只发布了两篇文章而已,这次刚好能用

  6. 闲鱼
    闲鱼 【状元】 @回复

    今天才通过这个熊掌号,弄了下不知道效果怎样

  7. 小萝博客
    小萝博客 【状元】 @回复

    作为小白,还是喜欢插件

  8. 365生活网
    365生活网 【秀才】 @回复

    这个代码在帝国CMS不知道能不能用

  9. 狂放
    狂放 【举人】 @回复

    熊掌号我折腾不了了,最近想写个自动强 奸百度的代码,昨天小小强 奸了一下百度,收录+1,可能以后百度要被玩坏咯

  10. 历史趣谈
    历史趣谈 【举人】 @回复

    教程很详细,但还是没有插件好用