结构化数据验证错误:文章中的插图(CreativeWork)不是有效的图像属性?

时间:2015-07-25 06:10:22

标签: html html5 schema.org microdata google-rich-snippets

我通常会将文章中的插图和照片标记为CreativeWork,以表彰适当的作者(视觉创作者)。

<article itemscope itemtype="http://schema.org/Article">
  <h1 itemprop="headline">Headline</h1>
  <p itemprop="author" itemscope itemtype="http://schema.org/Person">by <span itemprop="name">John Public</span></p>

  <figure itemscope itemtype="http://schema.org/CreativeWork">
    <img itemprop="image" src="http://example.com/artwork.jpg" alt="Artwork" />
    <figcaption itemprop="author" itemscope itemtype="http://schema.org/Person">Illustration by <span itemprop="name">George Smith</span></figcaption>
  </figure>

  <p>Full content of the article.</p>
</article>

到目前为止一切顺利。文章的作者和插图都有适当的记载。

但是,根据Google validation tool,图像是文章类型的必需属性,否则上面的代码不会通过验证。但是,这不是Article Schema的要求。

如何逃避代码重复,通过Google Schema验证并仍然信任作者和插图画家?

1 个答案:

答案 0 :(得分:2)

Schema.org没有必需的属性,但Google搜索等消费者当然可能要求提供某些属性来处理您的数据(例如,显示Rich Snippet)。

如果您想获得Google’s Rich Snippet for Articles,则必须提供属性wp-admin/plugins.phpheadlineimage

如果图片代表文章(与只是文章的一部分但不具代表性的图片形成对比),您可以使用image property从{{datePublished¹引用ImageObject¹ 1}}。
为此,您只需将Article添加到itemprop元素:

figure

如果图像不具代表性,则不应使用此图像(在这种情况下,您可能无法获得此Article Rich Snippet)。为了仍然能够引用<figure itemprop="image" itemscope itemtype="http://schema.org/ImageObject"> 中的图像,您可以使用hasPart property

Article

¹您正在使用<figure itemprop="hasPart" itemscope itemtype="http://schema.org/ImageObject"> ,但如果作品是图片,您最好使用子类型ImageObject及其contentUrl property

²如果您不使用属性来引用CreativeWork中的ImageObject,则它们没有任何关系。 HTML nesting does not affect the Microdata,除非您使用Article