将微数据添加到页面后,我通常会转到: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),即它们没有任何关联。
如果您想说ContactPointPerson的联系点,那么您需要一个属性来连接这两个项(这里的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>

07-24 09:22