我通常会将文章中的插图和照片标记为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验证并仍然信任作者和插图画家?
答案 0 :(得分:2)
Schema.org没有必需的属性,但Google搜索等消费者当然可能要求提供某些属性来处理您的数据(例如,显示Rich Snippet)。
如果您想获得Google’s Rich Snippet for Articles,则必须提供属性wp-admin/plugins.php
,headline
和image
。
如果图片代表文章(与只是文章的一部分但不具代表性的图片形成对比),您可以使用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
。