在微数据中使用元标记指定复杂结构

Specifying complex structure with meta tag in Microdata

如何标记未显示在微数据格式页面上的信息?

通常,我们不想在页面上显示 publisher/author 信息,但是 Google 文章需要此信息,而且文章结构复杂。

我不想将此数据隐藏起来 span/div 或其他任何东西,所以我想我会使用元标记。但是如何使用 metas 指定发布者实体的徽标和名称?我需要以某种方式使用 itemref 吗?

<section itemscope itemtype="http://schema.org/Article">
 <meta itemprop="keywords" content="kw1, kw2" />
 <meta itemprop="publisher" content="© My Company" /><!-- ??-->

我已经看过 ,但是否可以在不使用 JSON-LD 的情况下实现我想要的效果?如果不是,我可以同时使用 JSON-LD 和 meta/tag 描述吗?

我认为您有两个(在某些情况下是三个)使用微数据的选项。

meta/link + div

最简单的解决方案是对具有非项目值的属性使用 meta/link 元素,对具有项目值的属性使用 div 元素。

<section itemscope itemtype="http://schema.org/Article">
  <meta itemprop="keywords" content="kw1, kw2" />
  <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
    <meta itemprop="name" content="My Company" />
  </div>
</section>

meta/link 元素默认隐藏,div 元素只包含 meta/link 元素不显示任何东西。

meta/link + itemref

如果您不想使用 div 元素,可以使用 meta 元素来表示一个项目。但是你必须

  • 提供一个空的 content 属性(丑陋),并且
  • 对每个要添加到此项目的 属性 使用 itemref 属性。
<meta itemscope itemprop="publisher" content="" itemtype="https://schema.org/Organization" id="pub" itemref="pub-name" />

<meta itemprop="name" content="My Company" id="pub-name" />

<section itemscope itemtype="http://schema.org/Article" itemref="pub">
  <meta itemprop="keywords" content="kw1, kw2" />
</section>

请注意,这不适用于顶级项目,因为 meta 元素需要 itemprop 属性(不能为空)。

(meta/link +) itemid

在某些情况下,可能会引用项目的 URI(而不是嵌入它们),例如,如果您有另一个包含发布者数据的页面。

但是,请注意,Google是否支持此功能尚不清楚。

<section itemscope itemtype="http://schema.org/Article">
  <meta itemprop="keywords" content="kw1, kw2" />
  <link itemprop="publisher" href="/publisher#this" />
</section>
<!-- on the page /publisher -->

<section itemscope itemtype="http://schema.org/Organization" itemid="#this">
  <h1 itemprop="name">My Company</h1>
</section>