腾讯云服务器优惠活动华纳云香港服务器

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

WordPress主题推荐

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

纯代码实现WordPress站点文章自动提交熊掌号教程-第1张-boke112百科(boke112.com)

2020 年 5 月 15 日更新:

百度熊掌号及天级收录功能已经下线,如果 WordPress 站点想实现发布文章即主动推送到百度快速收录请参考『WordPress 站点如何实现发布文章即主动推送到百度快速收录?』。

一、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张-boke112百科(boke112.com)

注意:

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

纯代码实现WordPress站点文章自动提交熊掌号教程-第3张-boke112百科(boke112.com)

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张-boke112百科(boke112.com)

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

纯代码实现WordPress站点文章自动提交熊掌号教程-第5张-boke112百科(boke112.com)

具体效果

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

纯代码实现WordPress站点文章自动提交熊掌号教程-第6张-boke112百科(boke112.com)

总结

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

本文地址:https://boke112.com/post/4483.html

赞 (0) 打赏
版权声明:本文为投稿文章,感谢 懿古今 的投稿,版权归原作者所有!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu