我正在使用Microdata来标记博客文章。我遇到了一个问题,我无法找到Google的解决方案。
简而言之,我想使用嵌套的itemscope中已经指定的属性作为父项目。
我已将代码简化为以下示例,我想将作者图片用作博客文章的图片。
<article itemscope itemtype="http://schema.org/BlogPosting">
<meta itemprop="dateModified" content="2016-02-25" />
<div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Test Organisation">
<div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject">
<link itemprop="url" href="#" />
</div>
</div>
<link itemprop="mainEntityOfPage" href="#" />
<div class="heading">
<h2 itemprop="name headline">Imported Article 1</h2>
</div>
<div class="author-aside" itemprop="author" itemscope itemtype="http://schema.org/Person">
<img itemprop="image" src="#" />
<div class="name" itemprop="name">Author Name</div>
<div class="role" itemprop="jobTitle">Job Title</div>
</div>
<span itemprop="articleBody">
<p>Body Content</p>
</span>
<br />
<span content="2016-06-30" itemprop="datePublished">Thursday 30th June 2016</span></article>
我已尝试在评论&#34; CODE I NOW HAVE&#34;下使用间接建议in this question的答案。我做了我需要它,但产生了一个新的错误:
属性itemtype的值无效。
我正在使用this service来验证微数据。
答案 0 :(得分:1)
以下是两个不同的问题。
要将image
项中的Person
属性也添加到BlogPosting
项,您可以使用itemref
属性:
image
属性(Person
)提供id
属性。itemref
属性添加到BlogPosting
类型的元素,并引用id
值。示例:
<article itemscope itemtype="http://schema.org/BlogPosting" itemref="author-image">
<div itemprop="author" itemscope itemtype="http://schema.org/Person">
<img itemprop="image" src="#" id="author-image" />
</div>
</article>
虽然上述标记是有效的Microdata并且恰当使用了Schema.org词汇表,但Google还有其他规则/限制来显示其中一个Rich Snippets(或知识图谱功能)。
在Schema.org中,image
property可以有一个网址或ImageObject
项作为值,但Google希望看到ImageObject
的Rich Snippets。
(就像你使用logo
财产一样。)