wordpress添加熊掌号(亲自实践版)

  • A+
所属分类:WordPress

网站接入究熊掌号,遇到

校验失败
不符合JSON-LD格式要求(共1处错误)
错误原因
JSON 解析失败,格式不合法,可能存在多余的换行,回车,逗号

的问题,在网上搜索后也没有解决,后来发现了问题的原因:

在wordpress中description应该是   "description": "<?php echo rtrim($description); ?>", 若写为"description": "<?php echo rtrim($description,","); ?>"就会出现问题。

下面讲解网页如何进行熊掌号改造

官方的实例

下方代码为JSON-LD示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <script type="application/ld+json">
        {
            "@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
            "@id": "https://www.example.com/******",
            "appid": "您的APPID",
            "title": "页面标题******",
            "images": [
                "https://www.example.com/***/pic1.png",
                "https://www.example.com/***/pic2.png",
                "https://www.example.com/***/pic3.png"
            ], //请在此处添加希望在搜索结果中展示图片的url,可以添加0个、1个或3个url
            "pubDate": "2017-06-15T08:00:01" // 需按照yyyy-mm-ddThh:mm:ss格式编写时间,字母T不能省去
        }
 </script>

请在页面< /head > 标签前添加如上代码。

注意:appid为熊掌号唯一ID,请勿做任何修改,否则无法正常展现。

字段说明如下图:

wordpress添加熊掌号(亲自实践版)

很显然,上面的代码需要放在WordPress中的话,要把这几个字段修改成变量

下面就直接列出修改后的代码,可直接拿去用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
if (!function_exists('utf8Substr')) {
	function utf8Substr($str, $from, $len)
	{
	return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s','$1',$str);
	}
}
if ( is_single() ){
	if ($post->post_excerpt) {
		$description  = $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'];
		}
    $description = utf8Substr($post_content,0,220);
 
  }
 
	$keywords = "";
	$tags = wp_get_post_tags($post->ID);
	foreach ($tags as $tag ) {
		$keywords = $keywords . $tag->name . ",";
  }
 
  //获取第一张缩略图
  $img_id = get_post_thumbnail_id($post->ID);
  $img_url = wp_get_attachment_image_src($img_id);
  $thumbimg_url = $img_url[0];
}
?>

上面这段代码请放置< head >< /head >中即可,我是分开的,其实可以和下方的代码合并起来,我只是有其他的用途。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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": "换成您的APPID",
    "title": "<?php echo trim(wp_title('',0)); ?>",
    "images": ["<?php echo $thumbimg_url;?>"],
    "description": "<?php echo rtrim($description); ?>",
    "pubDate": "<?php echo get_the_time('Y-m-d\TH:i:s');?>"
}
</script>
<script src="//msite.baidu.com/sdk/c.js?appid=换成您的APPID"></script>
<?php } ?>

请将这段代码放置< /head >前,否则可能导致你的一些css,jsbody中。。(你可别不信,我是亲眼看到的。。)

ok,以上代码即实现了页面的改造,然后,查看源代码,如下图:

wordpress添加熊掌号(亲自实践版)

扩展阅读

显示WordPress特色图像(Featured Image)只需要调用the_post_thumbnail()函数,但这个函数默认显示的结构可能不符合我们的需求(它包含了width,height,class,src等信息,其实我们只需要src而已),所以需要一种方式可以直接获取特色图像或者说ThumbnailURL地址。

单篇文章中获取第一张缩略图的方法:

1
2
3
  $img_id = get_post_thumbnail_id($post->ID);
  $img_url = wp_get_attachment_image_src($img_id);
  $thumbimg_url = $img_url[0];
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: