我正在使用Microdata,我想使用Schema.org的keywords
作为CreativeWork
。
架构指定它应该是文本,但我是否将每个关键字放在一个带有itemprop="keywords"
的单独元素中,还是将它们全部放在一个keywords
元素中?如果我将它们全部放在一个元素中,我是否使用逗号作为分隔符?
答案 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" />
(allowed将meta
元素放在`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)
通过阅读文档,我会说你可以使用元标记来解析隐藏或格式错误的内容。下面的代码中priceCurrency
和datePublished
的情况属于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上使用的丰富网页摘要进行比较。