将微数据添加到页面后,我通常会转到:https://developers.google.com/webmasters/structured-data/testing-tool/来测试它并确保没有丢失任何内容。
我得到以下错误:
“ContactPoint必须附加到具有声明类型的父级”
我不知道我错过了什么…?
示例HTML
<div itemscope itemtype="http://schema.org/Person">
<p>
<span itemprop="description">Webmaster</span>:
<span itemprop="name">Omar</span>
<br/><a itemprop="url" href="https://plus.google.com/+Omar/">Profile</a>
</p>
<p itemscope itemtype="http://schema.org/ContactPoint">
To contact me please email me at
<a itemprop="email" href="mailto:[email protected]">[email protected]</a>
<meta itemprop="contactType" content="Webmaster"/>
<meta itemprop="sameAs" content="https://plus.google.com/+OmarJuvera"/>
<meta itemprop="availableLanguage" content="English"/>
<meta itemprop="availableLanguage" content="Spanish"/>
<meta itemprop="availableLanguage" content="Japanese"/>
</p>
</div>
最佳答案
(虽然谷歌的测试工具报告这是一个错误,但这并不是一个实际的错误。应该是个警告。您的代码是有效的微数据,并且您正确地使用了schema.org词汇表。)
您有两个顶级项(aPerson
和aContactPoint
),即它们没有任何关联。
如果您想说ContactPoint
是Person
的联系点,那么您需要一个属性来连接这两个项(这里的html级嵌套不相关)。
查看为Person
定义的属性,可以找到contactPoint
property,它以ContactPoint
为值,定义为:
个人或组织的联络点。
所以这个属性适合你的情况。
将contactPoint
属性添加到Person
项,引用ContactPoint
项:
<div itemscope itemtype="http://schema.org/Person">
…
<p itemprop="contactPoint" itemscope itemtype="http://schema.org/ContactPoint">
…
</p>
</div>