最近在seo群里,有很多朋友问dedecms(织梦)如何改造添加对熊掌号的支持。在这里就不唠叨熊掌号的各种好处了,大家可以自行百度脑补。可是很多朋友把织梦熊掌号改造出来的最后总是验证的时候不能通过。
下面通过两个步骤来介绍通过织梦(dedecms)改造,支持百度最新的熊掌号。改造完成以后,如果你的内容中有多图,在搜索结果中可以支持出三个图。
其实,织梦熊掌号改造说简单也简单说难也难,简单在于只要添加两段代码就可以了,难点是改造的时候很多朋友不细心,代码容易出问题,总是加不对。因为织梦标签很多地方调用方式的不同,所以很多朋友在操作过程中,标签总是不能获取到正确的格式,所以熊掌号验证一直过不了。
今天特地把我用到的最适用熊掌号的代码分享出来,可以说是目前比较齐全的方法。
一、给dedecms(织梦)添加Canonical标签
熊掌号必须要使用Canonical标签,来保证URL的唯一性和正确性。
dedecms调用代码如下:
<link rel="canonical" href="{dede:global.cfg_basehost/}{dede:field name='arcurl'/}" />
把以上这段代码加入在你内容页</head>部分以前。这就完成了熊掌号改造的第一步。接下来就是熊掌号的调用代码了。
二、织梦熊掌号正确的改造代码
先上我使用的代码,然后再逐步说明需要根据你网站更改的内容。
<!-- 替换成你自己的熊掌号ID -->
<script type="text/javascript" src="//msite.baidu.com/sdk/c.js?appid=xxxxxxxxxxxxxxxx"></script>
<script type="application/ld+json">
{
"@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
"@id": "{dede:global.cfg_basehost/}{dede:field name='arcurl'/}",
"appid": "xxxxxxxxxxxxx", //替换成你自己的熊掌号ID
"title": "{dede:field.title/}",
"images": [{dede:field.body runphp='yes'}
$str=strip_tags("@me","<img>");
preg_match_all("/src=\"\/?(.*?)\"/",$str,$ereg);
@me="";
if($ereg[1][0]){
@me.='"http://www.xxx.cn/'.$ereg[1][0].'"';//第一张图 网址替换成你自己的网址
}
if($ereg[1][1]){
@me.=',"http://www.xxx.cn/'.$ereg[1][1].'"';//第二张图 网址替换成你自己的网址
}
if($ereg[1][2]){
@me.=',"http://www.xxx.cn/'.$ereg[1][2].'"';//第三张图 网址替换成你自己的网址
}{/dede:field.body}
],
"pubDate": "{dede:field.pubdate function="MyDate('Y-m-d\TH:i:s',@me)"/}",
"upDate": "{dede:field.pubdate function="MyDate('Y-m-d\TH:i:s',@me)"/}"
}
</script>
织梦对熊掌号支持的改造,就是这么简单,只需要把ID和网址换成你的就可以了。这段织梦代码实现了对熊掌号出三图的支持。当然前提是你的文章里有三张或者三张以上的图。如果不足就只取第一张或者前两张图片。

三、织梦熊掌号改造过程中容易出现的问题
很多朋友都可能遇到熊掌号验证通不过的问题,如果出现验证不通过,首先你要详细检查自己的代码调用是否有错,一定要耐心细致的检查。下面列举几个常见的错误。
1)熊掌号验证不能通过的原因一
网站没有Canonical标签,这个是基础的一步,很多朋友就是因为没有这个标签导致验证不能通过;
2)熊掌号ID错误
检查<script type="text/javascript" src="//msite.baidu.com/sdk/c.js?appid=XXXXXXX"></script>和"appid": "XXXXXXX", 中的appid是否是你自己的ID,很多粗心的朋友把代码直接复制过来就用,根本没有做检查。一定要注意这个ID哦;
3)熊掌号时间格式错误
出现这个错误是由于没有按照熊掌号官方时间调用格式。具体代码是这一段:"pubDate": "{dede:field.pubdate function="MyDate('Y-m-d\TH:i:s',@me)"/}"。注意年月日和时分秒中间有一个T。这才是熊掌号时间的正确姿势。很多的朋友忘记这里的“T”了。

总结,上面的代码是我目前使用的代码,没有错误。还增加了熊掌号出三图的样式和目前极光算法对时间因子的支持。希望对广大朋友在熊掌号改造过程中有所帮助。