如何在元数据中实现 Schema.org 属性?

How to implement Schema.org properties in meta data?

Schema.org 描述了如何使用 meta 标签实现对象属性,但给出的示例是具有原始类型的属性,例如 TextBoolean。假设我想显示一个图像网格,并且每个图像的类型都是 ImageObjectcopyrightHolder 属性 本身是 OrganizationPerson。如果我想包括组织法定名称,我将如何仅使用元数据来做到这一点?

使用 "regular" HTML 个元素我会写:

<span itemprop="copyrightHolder" itemscope itemtype="http://schema.org/Organization">
  <span itemprop="legalName">ACME Inc.</span>
</span>

这显然不对:

<meta itemprop="copyrightHolder" itemscope itemtype="http://schema.org/Organization">
  <meta itemprop="legalName" content="ACME Inc.">
</meta>

唯一想到的是使用一组隐藏的 spans 或 divs.

我再次阅读《入门》并注意到 2b 指出

When browsing the schema.org types, you will notice that many properties have "expected types". This means that the value of the property can itself be an embedded item (see section 1d: embedded items). But this is not a requirement—it's fine to include just regular text or a URL.

所以我认为只使用

就可以了
<meta itemprop="copyrightHolder" content="ACME Inc.">

使用微数据,如果你想提供页面上不可见的结构化数据,你可以利用这些元素:

  • link(带 itemprop)对于值是 URL
  • meta(带 itemprop)对于不是 URL 的值
  • div/span(带 itemscope)用于项目

因此您的示例可能如下所示:

<div itemscope itemtype="http://schema.org/ImageObject">
  <div itemprop="copyrightHolder" itemscope itemtype="http://schema.org/Organization">
    <meta itemprop="legalName" content="ACME Inc." />
  </div>
</div>

如果您想在 head 元素中提供整个结构化数据(其中 div/span 是不允许的),请参阅 this answer. If you only want to provide a few properties in the head element, you can make use of the itemref attribute

就是说,如果您想以这种隐藏方式提供大量数据,您可能需要考虑使用 JSON-LD 而不是 Microdata (see a comparison)。