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

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

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/,转载时烦请以链接形式注明原始出处。
声明:我们不销售主机,选主机需合法使用。任何主机需定期备份,防止数据丢失。信息以实际为准,评测仅供参考不代表权威!
🍄:Netflix 奈飞 YouTube 合租

WordPress 4.2+ 使用 Twemoji 替换默认 Emoji 表情

WordPress 4.2+ 新增 Twitter Em❤️ji 表情,但是默认使用的 CDN —— https://s.w.org/images/core/emoji/11.2.0/72x72/ 在国内无法正常访问。解决办法有两个,一是把表情本地化,二是替换掉默认的链接。 🎉 😜 👯 🍻 🎈 🎤 🎮 🚀 🌉 ✨ 使用 Twitter 官方提供 MaxCDN 服务 Twitter 官方提供 MaxCDN 服务…
浏览: 157 标签:  ,  ,  ,  , 

WordPress 随机显示名人格言 + PHP 毒鸡汤

在 编程随想 博客看到个不错的功能——随机显示博主精选的名人格言,稍稍折腾,我也加上了这功能了(在首页随机显示我喜欢的句子)。 :razz: 网上(官网的是英文版的格言)有现成的插件。一个很简单的插件,其实可以集成到 functions.php 去。不过格言也存放在插件的php文件里面,集成到 functions.…
浏览: 130 标签:  ,  ,  , 

Gravatar 头像被墙及解决方案

Gravatar 头像真是一言难尽,时而正常时而抽风时而无法访问……就一个 Gravatar 头像,这有啥好强(现代通假字)的呢?(据说是被其它服务连累?) 解决办法 - 调用 ssl/cn 头像链接 历史解决办法:调用 ssl 头像链接——https还是没被墙的,而且速度还不错,直接调用这个最简单了。主题 functions.…
浏览: 80 标签:  ,  ,  ,  , 
浏览: 52 标签:  ,  ,  ,  , 

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 送$100,搬瓦工年付最低$49,优惠码 BWH3HYATVBJW,更多推荐VPS信息