【问题标题】:How to implement Schema.org properties in meta data?如何在元数据中实现 Schema.org 属性?
【发布时间】:2018-11-21 10:44:26
【问题描述】:

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

使用“常规”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。

【问题讨论】:

    标签: html schema.org microdata


    【解决方案1】:

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

    • 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。如果只想在head元素中提供几个属性,可以make use of the itemref attribute

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

    【讨论】:

      【解决方案2】:

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

      浏览 schema.org 类型时,您会注意到许多属性都有“预期类型”。这意味着属性的值本身可以是嵌入项(参见第 1d 节:嵌入项)。但这不是必需的——只包含常规文本或 URL 即可。

      所以我认为只使用就可以了

      <meta itemprop="copyrightHolder" content="ACME Inc.">
      

      【讨论】:

      • 正确,但请注意,通常最好为项目提供明确的类型。仅使用文本值时,消费者不一定知道所指的类型(是个人还是组织?),并且作者无法提供其他数据(例如,版权所有者的 URL)。
      猜你喜欢
      • 2015-04-30
      • 2015-01-22
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多