WordPress AMP 页面结构化数据提示 logo 和 image 错误

WordPress 启用 AMP,使用 Google 结构化数据测试工具检测页面可能会提示 logo 和 image 错误。image 错误很容易解决:文章设置一张特色图片就行。logo 错误目前应该要修改 amp 插件代码才行。

 104-amp-logo-image

Google 文档:文章机构化数据规范

测试工具:结构化数据测试工具

老杨没有设置特色图片,每一篇文章设置是不可能的,可以用插件(Default featured image)设置,不过老杨选择了直接修改插件文件。

相关代码在:\amp\includes\amp-helper-functions.php 文件,amp_get_schemaorg_metadata() 函数。修改后代码:

function amp_get_schemaorg_metadata() {
$metadata = [
'@context' => 'http://schema.org',
'publisher' => [
'@type' => 'Organization',
'name' => get_bloginfo( 'name' ),
],
];

$metadata['publisher']['logo']['@type'] = "ImageObject";
$metadata['publisher']['logo']['url'] = get_bloginfo('template_directory').'/img/apple-touch-icon.png';

$post = get_queried_object();
if ( $post instanceof WP_Post ) {
$metadata = array_merge(
$metadata,
[
'@type' => is_page() ? 'WebPage' : 'BlogPosting',
'mainEntityOfPage' => get_permalink(),
'headline' => get_the_title(),
'datePublished' => mysql2date( 'c', $post->post_date_gmt, false ),
'dateModified' => mysql2date( 'c', $post->post_modified_gmt, false ),
]
);

$post_author = get_userdata( $post->post_author );
if ( $post_author ) {
$metadata['author'] = [
'@type' => 'Person',
'name' => html_entity_decode( $post_author->display_name, ENT_QUOTES, get_bloginfo( 'charset' ) ),
];
}

if ( get_post_meta(get_the_ID(), 'thumbnails-120', true) ) {
$post_image_meta = [
'@type' => 'ImageObject',
'url' => get_post_meta(get_the_ID(), 'thumbnails-120', true),
'width' => "120px",
'height' => "120px",
];
} else {
$post_image_meta = [
'@type' => 'ImageObject',
'url' => get_bloginfo('template_directory').'/img/random/thums-'.sprintf( "%02d", rand( 1, 12 ) ).'.png',
'width' => "120px",
'height' => "120px",
];
}

$metadata['image'] = $post_image_meta['url'];

/**
* Filters Schema.org metadata for a post.
*
* The 'post_template' in the filter name here is due to this filter originally being introduced in `AMP_Post_Template`.
* In general the `amp_schemaorg_metadata` filter should be used instead.
*
* @since 0.3
*
* @param array $metadata Metadata.
* @param WP_Post $post Post.
*/
$metadata = apply_filters( 'amp_post_template_metadata', $metadata, $post );
}

/**
* Filters Schema.org metadata for a query.
*
* Check the the main query for the context for which metadata should be added.
*
* @since 0.7
*
* @param array $metadata Metadata.
*/
$metadata = apply_filters( 'amp_schemaorg_metadata', $metadata );

return $metadata;
}

请根据实际修改红色字体部分内容。

也可以到 Google Search Console - AMP 检查是否有错误。

--- 完 ---

除非注明,常阳时光文章均为原创,本文地址 https://cyhour.com/104/AMP 移动加速版本)转载时必须以链接形式注明原始出处。
Vultr 送$25,搬瓦工年付最低$49,优惠码 BWH34QMFYT2R,更多推荐VPS信息,或支持老杨
Views: 28 Tags:  ,  ,  ,  , 

Comments:8

  1. 快发车

    2019.11.29 14:35 # 回复
    1楼
  2. 你还启用了AMP的呀,我都懒得再搞,自适应就满足了。

    2019.11.29 14:52 # 回复
    2楼
    • @Sam.Z 很早以前就开过,后来觉得没什么用,经常有错误提示邮件,就关掉了。最近折腾上 Google 广告,又重新安装上 AMP。

      2019.11.29 15:12 # 回复
  3. AMP是什么东西?

    2019.11.29 15:38 # 回复
    3楼
    • @张波博客 Accelerated Mobile Pages(简称AMP,意为“加速移动页面”)是Google带领开发的开源项目,目的是为提升移动设备对网站的访问速度。

      2019.11.29 17:16 # 回复
  4. 这个坑我好像踩过

    2019.11.30 03:10 # 回复
    4楼

发表留言

Vultr 送$25,搬瓦工年付最低$49,优惠码 BWH34QMFYT2R,更多推荐VPS信息