WordPress AMP 插件 BUG 导致网页结构化数据错误 ,用 Google 结构化数据测试工具测试网页显示 LOGO 加载有错误,显示: (必须填写“url”字段的值。)
,下面图片为测试结果,从结构中可以看出已经为“url”提供了相应的值还是会报错,如果结构化数据测试有错误会导致 Google 不收录网页,下面记录解决办法
在网站插件 /amp/includes 目录下 amp-helper-functions.php 文件里找到 if ( $publisher_logo )
字段
$publisher_logo = amp_get_publisher_logo();
if ( $publisher_logo ) {
$metadata['publisher']['logo'] = $publisher_logo;
}
然后替换为如下代码:
$publisher_logo = amp_get_publisher_logo();
if ( $publisher_logo ) {
$metadata['publisher']['logo'] = [
"@type" => "ImageObject",
"url" => $publisher_logo,
"width" => 320,
"height" => 320,
];
}
PS:后来经过一段时间的摸索,弃用了这个方法,因为弃用了 AMP 官方插件,改用了第三方的插件 AMP for WP, 不用改代码这个问题也不存在了,并且 AMP for WP 插件里面有很多直观的设置,还有跟结构化数据配合的部分可以设置,AMP网页的呈现效果也好很多,还可以自己选择更换 AMP 网页的主题,好用很多。在网页链接后面加上 /amp
就可以查看 AMP网页的效果,比如本页的 AMP 网页地址为:https://kris.run/wordpress-amp-插件-bug-导致网页结构化数据错误/amp/,可以用移动设备查看本页效果,AMP 专为移动设备打造