我正在使用 Microdata,我想使用 Schema.orgkeywords
的CreativeWork
.
架构指定它应该是文本,但是我是将每个关键字放在一个单独的元素中itemprop="keywords"
还是将它们全部放在一个keywords
元素中?如果我将它们全部放在一个元素中,我是否使用逗号作为分隔符?
我正在使用 Microdata,我想使用 Schema.orgkeywords
的CreativeWork
.
架构指定它应该是文本,但是我是将每个关键字放在一个单独的元素中itemprop="keywords"
还是将它们全部放在一个keywords
元素中?如果我将它们全部放在一个元素中,我是否使用逗号作为分隔符?
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”中。)
您应该为每个关键字创建一个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>
我对规范的阅读使我得出结论,每个属性只能有一个 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 元素吗?
通过阅读文档,我想说您可以使用元标记来解析隐藏或格式错误的内容。下面的代码就是这种情况priceCurrency
,datePublished
取自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 数据测试工具查看结果,并与实际产品上使用的丰富网页摘要进行比较。