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

2017年12月05日 11:44:32  阅读 253 次

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

纯代码实现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站点文章自动提交熊掌号教程 技术文档 第2张

注意:

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

纯代码实现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站点文章自动提交熊掌号教程 技术文档 第4张

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

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

具体效果

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

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

总结

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

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

如果文章对你有帮助,请赞赏支持懿古今发展!

历史上的今天:

本文地址:https://yigujin.cn/1405.html
版权声明:本文为原创文章,版权归 懿古今 所有,欢迎分享本文,转载请保留出处!
淘宝天猫无门槛专享优惠券

发表评论


表情

  1. 磁力搬铁机
    磁力搬铁机 【实习】 @回复

    『你的熊掌号ID』和『你的准入密钥』是复制代码后,就把这两项改了,还是在后台改呢?我的NANA是旧版本,还没有熊掌号的那个版本,所以要自己加代码,请教一下。

    • 懿古今
      懿古今【老板】2017-12-27 22:28  回复

      @磁力搬铁机不想升级就按本文的步骤折腾,在代码中直接将熊掌号ID和密钥填到代码中。最新版本主题只需要在后台填写即可。

  2. 无柳
    无柳 【实习】 @回复

    怎么知道是否添加成功?

  3. 明月登楼的博客
    明月登楼的博客 【副总】 @回复

    不错,赞一个!代码还是很高效的!

  4. 姜辰
    姜辰 【助理】 @回复

    额,EM也可以改额

  5. 飞鸟慕鱼博客
    飞鸟慕鱼博客 【实习】 @回复

    我修改一下zblog得提交