如何在Microdata中为CreativeWork格式化关键字?

时间:2011-11-07 16:44:17

标签: html5 schema.org tagging microdata

我正在使用Microdata,我想使用Schema.org的keywords作为CreativeWork

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

4 个答案:

答案 0 :(得分:11)

Schema.org keywords property的定义发生了变化。它现在写着:

  

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

所以它在Microdata中看起来像这样:

<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>

(取自我关于semantic markup for tags的相关答案的例子。)

如果您不想在页面上显示逗号,除了标记的常规标记外,还可以使用meta元素:

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

allowedmeta元素放在`body'中。)

答案 1 :(得分:9)

您应该为每个关键字创建一个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>

答案 2 :(得分: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"/>

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

@Lawrence Woodman:您是否可以在规范中指明您可以在同一属性中使用多个itemprop元素?

答案 3 :(得分:2)

通过阅读文档,我会说你可以使用元标记来解析隐藏或格式错误的内容。下面的代码中priceCurrencydatePublished的情况属于schema.org documentation

<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 Data Testing Tool查看结果,并与the real product上使用的丰富网页摘要进行比较。