熊掌号出来有一段时间了,西枫里博客早早的就申请好了熊掌号。久久没有启用,放置了一段时间后,第一次启用熊掌号,发现博客程序中对缩略图定义的尺寸不符合要求,另外考虑到和百度的粘性太大会否影响其它搜索引擎的问题,所以第一次使用无图版的上线一天,思考再三,无图版的没有数据流的样子,并不妥当,就干脆下线了。经过前段时间对博客前台的panel模块进行改造后,把文章封面图处理成百度要求的300*200的尺寸后,近期重新上线了熊掌号。接下来简单说一说熊掌号的接入操作。
一是url规范。这个其实很简单,一是要求页面必须有对应的手机版或者是自适应页面,不能是单纯的PC页。西枫里博客是采用bootstrap的自适应页面,所以这里不是问题。
二是只能接受正常页面,这里需要注意的是状态码为200的文章页。栏目页首页这些就不要了,其它404页面这些都是没用的。
1、添加熊掌号的ID声明。一段JavaScript脚本,丢到head里面去就行了
2、关注功能代码。根据你网站的位置和风格自行选择吧,西枫里博客是选择文章段落间的。具体请看本博客的文章页面。
3、添加href的对应标签。这个就是针对PC页面和手机页面url不一致的。西枫里博客是自适应页面,所以pc页面url和手机页面url一致。
4、添加json_ld数据。这个将样本整个拷贝到你的页面中。
{ "@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld", "@id": "https://www.anji66.net/article/id/{$articles.id}.html", "appid": "1585053022069870", "title": "{$articles.art_title}", "images": ["https://www.anji66.net__UPLOADS__/{$articles.art_img|str_replace=',','',###}"], "description": "{$articles.art_description}", "pubDate": "{$articles.art_date|date="Y-m-d H:i:s",###|str_replace=" ","T",###}", "upDate": "{$articles.art_date|date="Y-m-d H:i:s",###|str_replace=" ","T",###}", "lrDate": "{$articles.art_date|date="Y-m-d H:i:s",###|str_replace=" ","T",###}" }
这里解释下,{}是ThinkPHP5的输出标记,{}中的这些源内容实际上是TP5控制器返回给视图页面的,而并非你现在看到的变量或者字符串。image中选择不填,就是无图形式。1张图就是西枫里博客这种形式,还可以是三张图的。description建议你选择和页面description一致。下面三个时间记得处理中日期和时间的分隔使用字母T而不是默认的空格。所以这里西枫里博客使用函数进行了一个替换操作。
5、做好上述操作后,将你网站的某个文章页地址复制到校验工具url栏中,右键你网页查看源代码,ctrl+a全选后复制到校验工具的代码框中。点击校验即可。如果没有通过百度会给出提示,参照提示处理即可。
西枫里博客是采用ThinkPHP5.0的程序开发的,所以在网站后台添加文章的时候,需要做一个推送方法,将当前发布的文章链接推送给百度,百度就能即时抓取了。直接上代码:
private function toBaiduSiteMap($id) { $urls = array( 'https://www.anji66.net/article/id/'.$id.'.html', ); $api = 'http://data.zz.baidu.com/urls?appid=1585053022069870&token=1gdDlQQ1XVSlxGzg&type=realtime'; $ch = curl_init(); $options = array( CURLOPT_URL => $api, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("\n", $urls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), ); curl_setopt_array($ch, $options); $result = curl_exec($ch); return $result; }
在发布文章获取自增ID后将ID传入这个方法即可完成推送。这里需要留意下百度的一个大坑。当时没留意,就看下了成功返回示例,就去判断了下success参数。而推送反馈中根本没有这个参数,而是success_realtime参数。看图,从这里可以看出百度的文档是多毛糙。
完成这些内容后,你的百度熊掌号就正式上线了。上线后及时更新内容,关注搜索指数等,指数超过300就过了新手期了。