从“WordPress 百度熊掌号快速开发改造教程”到“WordPress 的 Json_LD 实现代码及教程”,子凡在泪雪博客已经分享了一些列关于熊掌号改造的代码和教程,前些天熊掌号将原有的 Json_LD 数据改成了“搜索结果出图”,导致很多人以为原有的代码失效了,其实子凡可以明确的告诉大家并没有。

百度熊掌号搜索结果出图

之前关于熊掌号改造的代码和教程中其实相对的非常完善,结构化数据还包含了描述字段以及原来出现过一段灰度测试的原因字段,不过在搜索结果出图后,Json_LD 结构化数据代码已经算是毕竟精简,包含的字段项目也相对之前减少了 description 描述,从而更加重视 images 的图片字段,所以今天子凡就规规矩矩按照熊掌号搜索结果出图的示例改造页面代码,然后专门为 WordPress 适配一段 JSON-LD 的可用代码。

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
<?php
if(is_single()||is_page()){
	echo '<script type="application/ld+json">{
	"@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
	"@id": "'.get_the_permalink().'",
 	"appid": "这里请填写熊掌号 ID",
	"title": "'.get_the_title().'",
	"images": ["'.fanly_post_imgs().'"],
	"pubDate": "'.get_the_time('Y-m-d\TH:i:s').'"
}</script>
';}
//获取文章中的图 last update 2018/01/22
function fanly_post_imgs(){
	global $post;
	$src = '';
	$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];
	}elseif($n >= 1){
		$src = $strResult[1][0];
	}
	return $src;
}
?>

以上为 WordPress 文章和页面的熊掌号搜索结果出图 JSON-LD 结构化数据改造的完整代码,可以直接将上面代码放置在当前主题的 header.php 文件的</ head>标签之前即可。

最后子凡觉得有必要说明的就是,获得搜索结果出图权益,图片需满足以下要求:

  1. 图片清晰度高,长宽比为 3:2,图片大小不得低于 300*200px;
  2. 图片主体内容要居中,且要展现完全(图片可能会裁剪边缘,若裁剪后效果不佳会影响展现);
  3. 图片不能涉及低俗、色情、反动等;
  4. 同一篇内容中不能出现重复图片;
  5. 图片中不能是纯文字,不允许为广告图、色情图、纯色图、令人不适的图片;
  6. 图片中不得出现二维码、联系电话、微信号等受益方式;
  7. 图片水印只可添加熊掌号名称,且不可居于显著位置,不可大面积覆盖图片;
  8. 图片格式为 JPG、GIF、PNG 的静态图片,默认以 JPG 展示缩略图。

同时熊掌号搜索指数必须达到 100 才能申请该功能,也就是说一个新熊掌号过了新手期就可以申请该功能。再啰嗦一句,要实现三图样式,文章内容中必须要包含至少三种图片,以上代码会自动获取前三张图片,且不支持单独设置的特色图片,因为熊掌号要求图片必须是属于文章内容,所以需要拥有良好的缩略图效果就需要注意图片的放置位置了,同时图片链接请务必使用绝对链接的方式,支持站外图片链接。

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/wordpress-xzh-structurepic.html

发表评论

  1. 大云
    1楼
    大云 3周前 (11-01)

    你好,大神,我添加代码后,文章页面就无法开始的,就显示乱码,是怎么回事???

    • 张子凡
      回复
      张子凡 3周前 (11-02)
      回复 @大云 :说明你并没有加对
  2. 片段艺文志
    2楼
    片段艺文志 4周前 (10-23)

    感谢哦,代码已经添加就等展现了、

    • 张子凡
      回复
      张子凡 4周前 (10-25)
      回复 @片段艺文志 :哈哈哈,不用谢不用谢,请叫我子凡就好了
  3. 菜鸟
    3楼
    菜鸟 2个月前 (09-13)

    你好,图片长宽比是3:2的话,长度是3 宽度是2吧?我的还是不能成功显示图片,不知哪里有问题

    • 张子凡
      回复
      张子凡 2个月前 (09-13)
      回复 @菜鸟 :你不能成功显示图片那是你图片处理的问题了,如果是非专业问答图片只要高于大于规定像素即可。
      • 菜鸟
        回复
        菜鸟 2个月前 (09-29)
        回复 @张子凡 :我的还是不显示图片 在线验证提示 不存在或格式不对1 应该怎么解决呢?appid都没有错,不知道什么原因。
        • 张子凡
          回复
          张子凡 2个月前 (09-30)
          回复 @菜鸟 :注意验证代码格式
  4. 过路人
    4楼
    过路人 3个月前 (08-21)

    这个代码完全有问题,加上全部内容打不开

    • 张子凡
      回复
      张子凡 3个月前 (08-22)
      回复 @过路人 :可能是需要看人品吧。。。
      • 东方浩克
        回复
        东方浩克 2个月前 (09-15)
        回复 @张子凡 :问下,知道如何出3图吗?能否提供些代码=,=
        • 张子凡
          回复
          张子凡 2个月前 (09-17)
          回复 @东方浩克 :本代码就是支持3图的
          • 东方浩克
            回复
            东方浩克 2个月前 (09-17)
            回复 @张子凡 :意思是,下面那段获取文中的图放到 function里面,然后上面的添加的调用改一下就好了?
            • 张子凡
              回复
              张子凡 2个月前 (09-17)
              回复 @东方浩克 :怎样放置都可以。
  5. 茶人码头
    5楼
    茶人码头 5个月前 (06-21)

    看到熊掌号里的代码,是只加到你给的上半部分就行,那你额外增加的下半部分代码是什么意思?

    像这部分:

    //获取文章中的图 last update 2018/01/22
    function fanly_post_imgs(){
    ……………

    劳烦抽空回答下,十分感谢!

    • 张子凡
      回复
      张子凡 5个月前 (06-21)
      回复 @茶人码头 :这是获取文章图片的函数,必须整个部分添加。
  6. 雨中漫步网络
    6楼
    雨中漫步网络 5个月前 (06-12)

    楼主!这个代码是安装在首页就行嘛?还是说必须要加载在具体的页面?

    • 张子凡
      回复
      张子凡 5个月前 (06-12)
      回复 @雨中漫步网络 :理论上每个页面都可以,但是熊掌号是针对内容提交,所以正常情况内容页面是必须的。
  7. 鸟叔
    7楼
    鸟叔 7个月前 (04-24)

    熊账号必须全都是原创内容才能申请吧?

    • 张子凡
      回复
      张子凡 7个月前 (04-24)
      回复 @鸟叔 :不是,采集站都可以用熊掌号,不过最好是确保是原创才通过原创保护接口提交原创文章。