一、准备工作
- 百度熊掌号账号一个
- 备份相关文件
二、主题选项添加设置项
首先:打开【inc/options/begin-options.php】文件,找到代码
$options[] = array( 'name' => '将文章主动推送到百度', 'desc' => '启用', 'id' => 'baidu_submit', 'class' => 'be_ico', 'std' => '0', 'type' => 'checkbox' );
在其上面添加
$options[] = array( 'name' => '百度熊掌号', 'desc' => '启用', 'id' => 'baidu_xzh', 'class' => 'be_ico', 'std' => '0', 'type' => 'checkbox' ); $options[] = array( 'name' => '', 'desc' => '熊掌号ID', 'id' => 'xzh_id', 'class' => 'hidden', 'std' => '', 'type' => 'text' ); $options[] = array( 'name' => '', 'desc' => '准入密钥', 'id' => 'xzh_token', 'class' => 'hidden', 'std' => '', 'type' => 'text' ); $options[] = array( 'name' => '', 'desc' => '显示关注按钮', 'id' => 'xzh_gz', 'class' => 'hidden', 'std' => '0', 'type' => 'checkbox' ); $options[] = array( 'id' => 'clear' );
默认情况下,该功能位于【主题选项--SEO设置】选项卡中。
然后:打开【inc/options/includes/themes-options.php】文件,找到代码
jQuery('#ad_h_t').click(function() { jQuery('#section-ad_ht_c, #section-ad_ht_m').fadeToggle(400); }); if (jQuery('#ad_h_t:checked').val() !== undefined) { jQuery('#section-ad_ht_c, #section-ad_ht_m').show(); }
在其上面添加
jQuery('#baidu_xzh').click(function() { jQuery('#section-xzh_id, #section-xzh_token, #section-xzh_gz').fadeToggle(400); }); if (jQuery('#baidu_xzh:checked').val() !== undefined) { jQuery('#section-xzh_id, #section-xzh_token, #section-xzh_gz').show(); }
这段代码用来控制设置项的显示与隐藏。
三、添加熊掌号函数
打开【inc/inc.php】文件,找到代码
// 主动推送 if (zm_get_option('baidu_submit')) { if(!function_exists('Baidu_Submit')){ function Baidu_Submit($post_ID) { $WEB_DOMAIN = get_option('home'); 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='.zm_get_option('token_p'); $request = new WP_Http; $result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') ); $result = json_decode($result['body'],true); if (array_key_exists('success',$result)) { add_post_meta($post_ID, 'Baidusubmit', 1, true); } } add_action('publish_post', 'Baidu_Submit', 0); } }
在其下面添加
//熊掌号 // 获取文章/页面摘要 function zm_excerpt($len=220){ if ( is_single() || is_page() ){ global $post; if ($post->post_excerpt) { $excerpt = $post->post_excerpt; } else { if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){ $post_content = $result['1']; } else { $post_content_r = explode("\n",trim(strip_tags($post->post_content))); $post_content = $post_content_r['0']; } $excerpt = preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,0}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s','$1',$post_content); } return str_replace(array("\r\n", "\r", "\n"), "", $excerpt); } } // 获取文章中的三张图 function zm_post_img(){ global $post; $content = $post->post_content; preg_match_all('/<img .*?src=[\"|\'](.+?)[\"|\'].*?>/', $content, $strResult, PREG_PATTERN_ORDER); $n = count($strResult[1]); if($n >= 3){ $src = $strResult[1][0].'","'.$strResult[1][1].'","'.$strResult[1][2]; }else{ if( $values = get_post_custom_values("thumbnail") ) { $values = get_post_custom_values("thumbnail"); $src = $values [0]; } elseif( has_post_thumbnail() ){ $thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full'); $src = $thumbnail_src [0]; } else { if($n > 0){ $src = $strResult[1][0]; } } } return $src; } // 添加熊掌号代码 add_action('wp_head','baidu_xzh'); function baidu_xzh() { if(is_single() || is_page()){ echo '<script type="application/ld+json">{ "@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld", "@id": "'.get_the_permalink().'", "appid": "'. zm_get_option('xzh_id').'", "title": "'.get_the_title().'", "images": ["'.zm_post_img().'"], "description": "'.zm_excerpt().'", "pubDate": "'.get_the_time('Y-m-d\TH:i:s').'" }</script>';} echo '<script src="//msite.baidu.com/sdk/c.js?appid='. zm_get_option('xzh_id').'"></script>'; } if ( zm_get_option('xzh_token') == '' ) { } else { // 自动推送 if(!function_exists('Baidu_XZH_Submit')){ function Baidu_XZH_Submit($post_ID) { //已成功推送的文章不再推送 if(get_post_meta($post_ID,'BaiduXZHsubmit',true) == 1) return; $url = get_permalink($post_ID); $api = 'http://data.zz.baidu.com/urls?appid='. zm_get_option('xzh_id').'&token='. zm_get_option('xzh_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); //如果推送成功则在文章新增自定义栏目BaiduXZHsubmit,值为1 if (array_key_exists('success',$result)) { add_post_meta($post_ID, 'BaiduXZHsubmit', 1, true); } } add_action('publish_post', 'Baidu_XZH_Submit', 0); } }
三段函数略有注释,应该不难理解。
四、 前台添加熊掌号关注功能
前台涉及的文件比较多,主要涉及到以下几个文件:
- 【single-video.php】
- 【template/content.php】
- 【template/content-link.php】
- 【template/content-page.php】
- 【template/content-aside.php】
- 【template/content-video.php】
- 【template/content-image.php】
- 【template/content-quote.php】
- 【template/content-status.php】(假如你有这个文件的话)
操作方法都是一样的,在这些文件中找到代码
<?php the_content(); ?>
在其下面添加
<?php if (zm_get_option('xzh_gz')) { ?> <script>cambrian.render('tail')</script> <?php } ?>
即可。
五、添加熊掌号样式
打开【style.css】文件,在文件最后添加
/* xzh */ ._25ZfXD { background: #fff !important; color: #666 !important; line-height: 35px !important; padding: 0 !important; height: 35px !important; cursor: pointer; border: 1px solid #ddd !important; } ._25ZfXD:hover { background: #3690cf !important; color: #fff !important; border: 1px solid #3690cf !important; } .fsM37u, ._2QGloY, ._3YDNrK { display: none !important; } #cambrian0 { height: 70px !important; } ._1mpIIe::after { border: none !important; } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }
即可。
六、熊掌号设置
- 熊掌号ID和准入密钥获取方法
- 进入【熊掌号--搜索资源平台】,注意不是【熊掌号--熊掌号基础平台】
- 在左侧列表中点击【资源提交】
- 在右侧【内容提交】中点击【API提交】
- 找到【接口调用地址】:http://data.zz.baidu.com/urls?appid=12345&token=67890&type=realtime
其中:
-
appid
:熊掌号IDtoken
:准入密钥type
:数据类型,不需要修改
- 熊掌号启用方法
- 勾选【主题选项--SEO设置--百度熊掌号--启用】选项
- 输入【熊掌号ID】和【准入密钥】
- 根据个人需要,启用【显示关注按钮】
七、其他说明
- 启用【百度熊掌号】功能后,正常发布文章后,后台会自动推送该文章到百度熊掌号
- 启用该功能前发布的那些文章,貌似不会自动推送
- 自定义文章类型下的文章和单页面文章貌似也不会自动推送
- 正常情况下,若推送成功,会在该文章编辑页面的【自定义栏目】面板中自动添加名称为
BaiduXZHsubmit
,值为1
的栏目
继续阅读
如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
2019年2月25日 21:34 1F
主题带了吧
2019年2月26日 02:30 1B
@台庄资讯 是的,正版主题自带的
2019年5月30日 13:15 2F
熊掌号不是凉了吗?现在又可以用了?
2019年5月30日 14:40 1B
@Action 之前写好的,由于设定的定时发布,所以文章看上去写的有些迟了