最近百度站长平台改版之后,以前的百度实时推送功能好像跟现在的熊掌号提交有冲突,而且为了跟上百度脚步,我们就很有必要把以前的百度实时推送改为熊掌号提交功能。今天我就以 Nana主题为例进行说明改造,希望能够起到抛砖引玉的作用。
一、H5 页面结构化改造
1、在Nana主题的 \inc\functions\seo.php 文件中找到以下代码(大概在52行)
- <?php if ( is_single() ) { ?>
在它的下方添加以下代码
- <link rel=“canonical” href=“<?php the_permalink();?>”/>
- <script type=“application/ld+json”>
- {
- “@context”: “https://ziyuan.baidu.com/contexts/cambrian.jsonld”,
- “@id”: “<?php the_permalink();?>”,
- “appid”: “你的熊掌号ID”,
- “title”: “<?php echo trim(wp_title(”,0)); ?>”,
- “images”: [
- “<?php if ( get_post_meta($post->ID, ‘wzshow’, true) ){echo get_post_meta($post->ID, ‘wzshow’, true); }else{echo catch_image();} ?>”
- ],
- “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;} ?>”,
- “pubDate”: “<?php echo get_the_time(‘Y-m-d\TH:i:s’);?>”
- }
- </script>
- <script src=“//msite.baidu.com/sdk/c.js?appid=你的熊掌号ID”></script>
添加后的代码如下:
注意:
1、记得将以上代码中的『你的熊掌号ID』改为你自己真正的熊掌号ID,具体ID获取可以登录熊掌号后点击页面改造后即可看到,具体见下图:
2、这个只是针对 Nana主题的,其他主题的话,一般都是将上述代码添加到主题的 header.php 文件中。
二、熊掌号内容/原创API提交
这里我们需要将 Nana主题原来的百度实时推送功能代码修改为自动提交到熊掌号中,具体打开 Nana主题的 functions.php 文件,找到以下代码:
- /**
- * WordPress发布文章主动推送到百度,加快收录保护原创【WordPress通用方式】
- */
- if(!function_exists(‘Baidu_Submit’)){
- function Baidu_Submit($post_ID) {
- $WEB_TOKEN = get_option(‘ygj_token_id’); //这里请换成你的网站的百度主动推送的token值
- $WEB_DOMAIN = home_url();
- //已成功推送的文章不再推送
- 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发布文章主动推送到百度熊掌号
- */
- if(!function_exists(‘Baidu_Submit’)){
- function Baidu_Submit($post_ID) {
- //已成功推送的文章不再推送
- if(get_post_meta($post_ID,’Baidusubmit’,true) == 1) return;
- $url = get_permalink($post_ID);
- $copy = get_post_meta($post->ID, ‘wzurl’, true);
- if (empty($copy)) {
- $api = ‘http://data.zz.baidu.com/urls?appid=你的熊掌号ID&token=你的准入密钥&type=realtime,original’;
- }else{
- $api = ‘http://data.zz.baidu.com/urls?appid=你的熊掌号ID&token=你的准入密钥&type=realtime’;
- }
- $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_realtime’,$result)) {
- add_post_meta($post_ID, ‘Baidusubmit’, 1, true);
- }
- }
- add_action(‘publish_post’, ‘Baidu_Submit’, 0);
- }
注意:
1、记得修改以上代码中的『你的熊掌号ID』和『你的准入密钥』,熊掌号ID和准入密钥在熊掌的内容提交 >> API提交中直接获得。
2、这个代码利用了自定义字段 wzurl 来判断是原创还是非原创,根据Nana主题的设计,非原创文章都会有一个自定义字段 wzurl,它的值就是该篇文章来源URL地址,所以如果你在编辑文章的时候不填写编辑器下方的『原文链接地址』的话,哪怕是勾选了转载文章或者投稿文章也会按原创文章进行提交给熊掌号。介意的话自行修改以上代码的自定义字段 wzurl 即可。
具体效果
我的熊掌号是用百家号账号绑定的,通过设置自动提交给熊掌号之后,懿古今和boke112导航两个站点发布的文章都会自动更新到我那个百家号,具体见下图:
总结
本文只是在Nana主题的基础上进行修改,所以不一定适合其他主题(PS:WordPress版本的Blogs主题适用)。换句话的意思就是说其他主题如果想实现这个文章发布自动提交到熊掌号的话,可以参考《纯代码实现熊掌号H5页面结构化改造及数据提交插件》这篇文章。