12

我正在使用 Microdata,我想使用 Schema.orgkeywordsCreativeWork.

架构指定它应该是文本,但是我是将每个关键字放在一个单独的元素中itemprop="keywords"还是将它们全部放在一个keywords元素中?如果我将它们全部放在一个元素中,我是否使用逗号作为分隔符?

4

4 回答 4

13

Schema.org 的keywords属性定义发生了变化。现在是这样写的:

用于描述此内容的关键字或标签。关键字列表中的多个条目通常由逗号分隔。

所以它在微数据中可能看起来像这样:

<article itemscope itemtype="http://schema.org/BlogPosting">

  <footer>
    <ul itemprop="keywords">
      <li><a href="/tags/foo" rel="tag">foo</a>,</li>
      <li><a href="/tags/bar" rel="tag">bar</a></li>
    </ul>
  </footer>

</article>

(示例取自我关于标签语义标记的相关答案。)

如果您不想在页面上显示逗号,则可以meta在标签的正常标记之外使用元素:

<meta itemprop="keywords" content="foo, bar" />

允许将此meta元素放置在“body”中。)

于 2015-10-10T17:16:15.987 回答
10

您应该为每个关键字创建一个itemprop元素,如下所示:

<div itemscope itemtype="http://schema.org/CreativeWork">
  <span itemprop="name">Resistance 3: Fall of Man</span>
  by <span itemprop="author">Sony</span>.
  Keywords:
  <a href="/tags/game/"><span itemprop="keywords">Game</span></a>,
  <a href="/tags/adult/"><span itemprop="keywords">Adult</span></a>
</div>
于 2011-11-08T12:05:24.037 回答
4

我对规范的阅读使我得出结论,每个属性只能有一个 itemprop 属性。

换句话说,我不认为为每个关键字创建一个 itemprop 元素会创建一个正确的微数据语法。

我会将每个关键字放在以空格分隔的列表中,并使用单个 itemprop:

  <span itemprop="keywords">
  <a href="/tags/game/">Game</a>,
  <a href="/tags/adult/">Adult</a>
  </span>

or

 <meta itemprop="keywords" content="Game Adult"/>

我不确定如果关键字包含多个单词应该怎么做,因为规范中没有说明如何在文本中分隔关键字(我假设使用空格和.或逗号等标点符号)。

@Lawrence Woodman:你能指出你在规范中读到的地方,允许同一个属性有多个 itemprop 元素吗?

于 2013-06-09T23:15:42.270 回答
2

通过阅读文档,我想说您可以使用元标记来解析隐藏或格式错误的内容。下面的代码就是这种情况priceCurrencydatePublished取自schema.org 文档

<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
  Price: <span itemprop="price">$6.99</span>
  <meta itemprop="priceCurrency" content="USD" />
  <link itemprop="availability" href="http://schema.org/InStock">In Stock
</div>

Product details
<span itemprop="numberOfPages">224</span> pages
Publisher: <span itemprop="publisher">Little, Brown, and Company</span> - 
<meta itemprop="datePublished" content="1991-05-01">May 1, 1991
Language: <span itemprop="inLanguage">English</span>
ISBN-10: <span itemprop="isbn">0316769487</span>

假设我是对的,我已将代码更改为以下内容。

<div itemscope itemtype="http://schema.org/CreativeWork">
  <!-- way too many content -->
  <h5>Keywords</h5>
  <meta itemprop="keywords" content="Rio de Janeiro, Brazil">
  <a href="/tags/rio/" rel="nofollow">Rio de Janeiro</a>
  <a href="/tags/brazil/" rel="nofollow">Brazil</a>
</div>

我会在几天后部署它,所以很抱歉我无法确定它现在是否有效。

更新:部署代码后,它就像一个魅力。您可以通过Google 数据测试工具查看结果,并与实际产品上使用的丰富网页摘要进行比较。

于 2013-12-20T16:30:03.677 回答