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

How to correctly reference Microdata item from meta tag in header?

<!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/ ) 验证时:"WebSite is not a valid type."

使用 https://validator.nu/ 得到 "Element meta is missing required attribute content"。

关于如何解决这个问题有什么建议吗?

您必须在要向其添加属性的 itemscope 上指定 itemref(即您的案例中的 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>

但假设您在 body 上使用另一个 itemscope(例如,对于 WebPage 项),在这种情况下您需要使用 itemref :

<!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 因为它是 child).