如何从标题中的元标记正确引用微数据项?

时间:2016-03-18 11:18:20

标签: html5 schema.org microdata

<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/WebSite">
<head>
  <meta itemprop="creator" itemscope itemref="mdFoo">
</head>
<body>

 <div id="mdFoo" itemscope itemtype="http://schema.org/LocalBusiness">
        <meta itemprop="name" content="Foo comp">
        <meta itemprop="telephone" content="0">
        <meta itemprop="legalName" content="Foo comp Ltd">
        <meta itemprop="url" content="http://www.foo.com">
        <meta itemprop="email" content="info@foo.com">
        <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
            <meta itemprop="streetAddress" content="mystreet">
            <meta itemprop="postalCode" content="1233">
            <meta itemprop="addressLocality" content="London">
            <meta itemprop="addressCountry" content="UK">
        </div>
    </div>

</body>
</html>

在使用Google验证时(https://google.com/webmasters/markup-tester/):&#34;网站不是有效类型。&#34;

使用https://validator.nu/给我&#34;元元素缺少必需的属性内容&#34;。

有关如何解决此问题的任何建议吗?

1 个答案:

答案 0 :(得分:3)

您必须在要添加属性的itemref上指定itemscope(即您的案例中的html元素)。具有相应id的元素必须获得itemprop

但是,在您的情况下,您不需要meta元素,也不需要使用itemref

<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/WebSite">
<head>
  <title>…</title>
</head>
<body>

  <div itemprop="creator" itemscope itemtype="http://schema.org/LocalBusiness">
  </div>

</body>
</html>

但是,假设您在itemscope上使用了另一个WebPage(例如body项),在这种情况下,您需要使用itemref:< / p>

<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/WebSite" itemref="mdFoo">
<head>
  <title>…</title>
</head>
<body itemscope itemtype="http://schema.org/WebPage">

  <div itemprop="creator" itemscope itemtype="http://schema.org/LocalBusiness" id="mdFoo">
  </div>

</body>
</html>

现在creator属性将应用于这两个项目(WebSite感谢itemrefWebPage,因为它是一个孩子)。