Structured data validation error: illustration (CreativeWork) inside an Article is not a valid image attribute?
Structured data validation error: illustration (CreativeWork) inside an Article is not a valid image attribute?
我通常将文章中的插图和照片标记为 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, image is a required attribute for Article type, otherwise the code above is not passing the validation. This is not, however, a requirement of the Article Schema。
我如何避免代码重复,通过 Google 架构验证并仍然向作者和插图画家致敬?
Schema.org 没有必需的属性,但像 Google 搜索这样的消费者当然可能需要提供某些属性来处理您的数据(例如,显示丰富网页摘要)。
如果你想得到Google’s Rich Snippet for Articles,你必须提供属性headline
、image
和datePublished
.
如果图像代表文章(对比只是文章的一部分但不具有代表性的图像),您可以使用 image
property 引用 ImageObject
¹ 来自Article
.
为此,您只需将 itemprop
添加到 figure
元素:
<figure itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
如果图像不具有代表性,则不应使用此图像(在这种情况下,您可能不会获得此 Article Rich Snippet)。为了仍然能够引用²来自 Article
的图像,您可以使用 hasPart
property:
<figure itemprop="hasPart" itemscope itemtype="http://schema.org/ImageObject">
¹ 您正在使用 CreativeWork
,但如果作品是图像,您最好使用子类型 ImageObject
and its contentUrl
property。
² 如果你不使用 属性 从 Article
引用 ImageObject
,它们就没有任何关系。 HTML nesting does not affect the Microdata 除非你使用 itemprop
.
我通常将文章中的插图和照片标记为 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, image is a required attribute for Article type, otherwise the code above is not passing the validation. This is not, however, a requirement of the Article Schema。
我如何避免代码重复,通过 Google 架构验证并仍然向作者和插图画家致敬?
Schema.org 没有必需的属性,但像 Google 搜索这样的消费者当然可能需要提供某些属性来处理您的数据(例如,显示丰富网页摘要)。
如果你想得到Google’s Rich Snippet for Articles,你必须提供属性headline
、image
和datePublished
.
如果图像代表文章(对比只是文章的一部分但不具有代表性的图像),您可以使用 image
property 引用 ImageObject
¹ 来自Article
.
为此,您只需将 itemprop
添加到 figure
元素:
<figure itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
如果图像不具有代表性,则不应使用此图像(在这种情况下,您可能不会获得此 Article Rich Snippet)。为了仍然能够引用²来自 Article
的图像,您可以使用 hasPart
property:
<figure itemprop="hasPart" itemscope itemtype="http://schema.org/ImageObject">
¹ 您正在使用 CreativeWork
,但如果作品是图像,您最好使用子类型 ImageObject
and its contentUrl
property。
² 如果你不使用 属性 从 Article
引用 ImageObject
,它们就没有任何关系。 HTML nesting does not affect the Microdata 除非你使用 itemprop
.