只需几段代码,WordPress轻松接入熊掌号

昨天,小编发了一篇关于熊掌号的文章,介绍了本站成功申请并接入百度熊掌号。很多看了那篇文章的小伙伴多少都有点疑虑,代码要怎么加?才能符合百度熊掌号的要求。

今天小编就把具体操作方法给大家参考下。

改造前要确认自己的站点是否符合要求,网站必须有H5移动页面或者进行过MIP改造

本站暂没进行MIP改造,所以这里以H5页面为例子介绍相关方法。

一、首先找到自己网站主题目录,在找到header.php文件,将以下代码粘贴到文件头部位置(即</head>标签之前)。

<?php
global $wp;
$current_url = home_url(add_query_arg(array(),$wp->request));
if($current_url)echo '<link rel="canonical" href="'.$current_url.'" />'."\n";
?>
<?php if( is_single() || is_page() ): ?>
<script type="application/ld+json">
    {
        "@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
        "@id": "<?php echo curPageURL();?>",
        "appid": "你的熊掌号ID",
        "title": "<?php echo wp_title('', false); ?>",
        "images": [
            "<?php echo post_thumbnail_src();?>"
            ],
        "description": "<?php if ($post->post_excerpt) 
				{$printDescription = $post->post_excerpt;} 
							else{
			$printDescription = preg_replace('/\s+/','',mb_strimwidth(strip_tags($post->post_content),0,145,''));
								}
						echo $printDescription;?>",
        "pubDate": "<?php echo get_the_time('Y-m-d\TG:i:s'); ?>"
    }
</script>		
<?php endif; ?>
<script src="//msite.baidu.com/sdk/c.js?appid=你的熊掌号ID"></script>

注意:由于上面代码中使用了curPageURL()函数获取当前网页地址,所以您还需要在function.php里定义此函数。代码如下(如果您的网站没有开启SSL,第10行里的端口443请修改成80):

// 说明:获取完整URL
function curPageURL()
{
    $pageURL = 'http';
    if ($_SERVER["HTTPS"] == "on")
    {
        $pageURL .= "s";
    }
    $pageURL .= "://";
    if ($_SERVER["SERVER_PORT"] != "443"  )
    {
        $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
    }
    else
    {
        $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
    }
    return $pageURL;
}

另外需要注意,不同主题缩略图获取函数可能存在差异,如果网页报错建议在function.php增加如下缩略图函数:

//输出缩略图地址
function post_thumbnail_src(){
    global $post;
    if( $values = get_post_custom_values("thumb") ) {   //输出自定义域图片地址
        $values = get_post_custom_values("thumb");
        $post_thumbnail_src = $values [0];
    } elseif( has_post_thumbnail() ){    //如果有特色缩略图,则输出缩略图地址
        $thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
        $post_thumbnail_src = $thumbnail_src [0];
    } else {
        $post_thumbnail_src = '';
        ob_start();
        ob_end_clean();
        $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
        if(!empty($matches[1][0])){
            $post_thumbnail_src = $matches[1][0];   //获取该图片 src
        }else{  
            //如果日志中没有图片,则显示默认图片
            $post_thumbnail_src = get_template_directory_uri().'/img/default_thumb.png';
        }
    }
    return $post_thumbnail_src;
}

二、保存header.php文件。

三、刷新网站,查看网站源码观察是否已经出现如下代码片段。

四、分别复制网址和源码到百度熊掌号检测页面,进行手动检测。提示校验成功既代表符合熊掌号的格式规范。

接下来发表文章后就可以尝试提交链接了,目前本站还在测试,部分提交内容也没有显示出来。后期小编会跟着熊掌号的进度来进一步讲解相关功能的使用。

海拔科技

自媒体人,喜欢网络,热爱研究。本站头条号:星河 熊掌号:海拔科技

32 条评论

  1. 谢谢分享,折腾中

  2. 沈寒

    我是知更鸟主题 文章页正常 页面空白
    是判断问题吗?

  3. 沈寒

    谢谢你 本来以为很麻烦的 照着你文章一步步做也就好了有小插曲就最近找找 ❗

  4. 你好,当前页面那个我能否改成 @id”: ”
    我已经加好了,但是就是不知道你这个页面改造怎么弄的,你的pc端和移动端,我看着挺好的,我也是这个主题,弄不好

    • 海拔科技

      @Mill Wan 页面改造的话就是按照本文的说明改造 模板文件就行了,代码也贴出来了。

  5. 加了之后网站空白,调试了好几次都慌了,好在有备份。。。博主可以贴改造文件的代码位置吗?

    • 海拔科技

      @qq昵称 空白是因为不同主题的自定义函数不一样,请仔细阅读内容,一般空白就是因为头部那个获取图片或者获取当前网址的地方有问题。

      • @海拔科技 昨天校验成功,今天登录熊掌号发现没统计,又校验了一次结果失败,提示:canonical校验不通过,canonical校验不存在。

        • 海拔科技

          @qq昵称 检查先源码canonical部分,看看对应的值是不是当前页面的url

  6. 我手工提交的文章链接,后台数据反馈过来“落地页体验较差”,一篇文章都没有收录, 是怎么回事啊?

  7. qqq

    您好,我按照以上步骤添加后前台无内容是怎么回事?

    • 海拔科技

      @qqq 后台无内容?能详细说明一下么?

      • qqq

        @海拔科技 是添加后,刷新页面,首页页面空白 。我的是word press程序

        • 海拔科技

          @qqq 代码有问题,你可以开启wp-config.php的debug看下错误信息。是哪里的问题

  8. @id值和页面地址不一致
    在熊掌号检测时出现上述错误,能说说吗?

    • 海拔科技

      @异次元 你把你源码里的ID值和URL贴出来我看一下

      • @海拔科技 我搞定了,是因为我选了自定义固定链接,导致抓取到的ID url和页面url不一致。把你的那个抓取代码改成别的就可以了。

        • 海拔科技

          @异次元 那不应该的啊,我也是用的自定义固定连接。我感觉应该是端口问题,我那个代码里是部署在ssl站的,如果您的网站没有开启ssl,需要把443改成80

          • @海拔科技

            // 说明:获取无参数URL
            function curPageURL() 
            {
              $pageURL = 'http';
              if ($_SERVER["HTTPS"] == "on") 
              {
                $pageURL .= "s";
              }
              $pageURL .= "://";
              $this_page = $_SERVER["REQUEST_URI"];
                // 只取 ? 前面的内容
              if (strpos($this_page, "?") !== false)
              {
                $this_pages = explode("?", $this_page);
                $this_page = reset($this_pages);
              } 
              if ($_SERVER["SERVER_PORT"] != "80") 
              {
                $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $this_page;
              } 
              else
              {
                $pageURL .= $_SERVER["SERVER_NAME"] . $this_page;
              }
              return $pageURL;
            }
            

            我改成了这样,百度来的。

            • 海拔科技

              @异次元 能用就好,不过我感觉还是 if ($_SERVER[“SERVER_PORT”] != “443” )
              这段代码的问题。因为我的站是https当时就写了443,发出来的时候忘记写个提示了。http的站需要改成80 😳

  9. 博主,我用的是知更鸟主题,但是接入熊掌号不能出现文章结尾处,还请赐教!!!

    • 海拔科技

      @小飞飞 不能出现文章结尾处?我不太理解这句话的意思

    • 海拔科技

      @小飞飞 我知道了,最后那个图是需要等1-2天后登陆熊掌号查看的,不是实时显示的。

  10. 111111

    是什么意思?会造成前台打不开,不加这段代码可以吗?

    • 海拔科技

      @111111 接入熊掌号必须加这段代码,按教程操作不要漏掉任何步骤,前台不可能打不开啊,你可以开启WordPress根目录的config.php文件里的debug,看下是哪里的错误,是不是没有在function.php定义curPageURL?

      • 111111

        @海拔科技 第一段代码第25行,?php endif; ?、可以不加吗?我的就是因为这段代码导致前台打不开

        • 海拔科技

          @111111 不好意思,之前代码的确有问题,现在已经好了,第六行当时少写了一句判断,导致了最后一行的endif 无效。
          你再试试新代码,第六行主要是用于判断是否为文章页面或者单页面,如果是文章页面才会生效下面的script代码。

  11. 哑巴行者

    能告知QQ号么?想具体请教一下,谢谢

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。

相关推荐

WordPress熊掌号/原创提交插件Fanly_Submit更新至V3.0

今天(11月3日)Fanly_Submit插件作者将插件更新至3.0版本,本版本兼容了最新的熊掌号提交接口,安装插件后可以在发布文章的同时一键提交内容至熊掌号和原创保护接口。 Fanly Submit V3.0 版本(2017/11/03) 正式接 …

初次接触,海拔科技成功接入百度熊掌号

百度熊掌号已经上线一段时间了,昨天随着百度站长平台的改版,小编便迫不及待的了解了下熊掌号的相关知识,同时也申请了入驻。 今天一大早,手机滴滴滴来了条新消息:【百度】恭喜!您在搜索资源平台•熊掌号提交的申 …