我的网页结构如下:
<div id="product" itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">Product name</h1>
<!-- ... -->
<table itemprop="offers" itemscope itemtype="http://schema.org/Offer" id="product_description">
<tr><th>Weight:</th><td itemprop="weight" itemscope itemtype="http://schema.org/QuantitativeValue">3.75g</td></tr>
<tr><th>Width:</th><td itemprop="width" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
<tr><th>Height:</th><td itemprop="height" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
<tr><th>Availability:</th><td><link itemprop="availability" href="http://schema.org/InStock"/>available</td></tr>
<!-- ... -->
我希望将weight
,width
和height
附加到Product
范围而不是Offer
。
我如何实现这一目标?
答案 0 :(得分:2)
您可以使用itemref
attributes将这些属性添加到Product
,但这仍然无效,因为它们仍会适用于Offer
(但此类型不允许使用这些属性)。
所以你必须将它们移出Offer
的范围。
有多种方法可以做到这一点。如果没有看到完整的HTML,就无法确定哪一个有效或哪个最好。
如果表格中不包含任何其他内容,您可以使用:
<table>
<tr><th>Weight:</th><td itemprop="weight" itemscope itemtype="http://schema.org/QuantitativeValue">3.75g</td></tr>
<tr><th>Width:</th><td itemprop="width" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
<tr><th>Height:</th><td itemprop="height" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
<tr itemprop="offers" itemscope itemtype="http://schema.org/Offer"><th>Availability:</th><td><link itemprop="availability" href="http://schema.org/InStock"/>available</td></tr>
</table>
如果您有更多行应属于Offer
,则可以使用tbody
element对这些行进行分组:
<table>
<tbody>
<tr><th>Weight:</th><td itemprop="weight" itemscope itemtype="http://schema.org/QuantitativeValue">3.75g</td></tr>
<tr><th>Width:</th><td itemprop="width" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
<tr><th>Height:</th><td itemprop="height" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
</tbody>
<tbody itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<tr><th>Availability:</th><td><link itemprop="availability" href="http://schema.org/InStock"/>available</td></tr>
</tbody>
</table>
如果行是混合的(例如,Product
的前3个,Offer
的1个,再次Product
的一个),则必须使用{{1}并省略嵌套:
itemref
答案 1 :(得分:0)
你必须“保护&#39;通过添加额外的包装&#39; itemscope&#39;来自Offer的产品itemprop(s)。 &安培;通过使用产品上的引用将itemprop分配给Product; &#39;的itemref&#39; id(s)列表和目标标签上的id。
您还必须将QuantitativeValue拆分为unitCode&amp;值。
Google提供了一个测试工具https://developers.google.com/structured-data/testing-tool/
可以在http://wiki.goodrelations-vocabulary.org/Documentation/UN/CEFACT_Common_Codes
找到unitCodes列表<div id="product" itemscope itemtype="http://schema.org/Product" itemref="weight width height">
<h1 itemprop="name">Product name</h1>
<table itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<tr>
<th>Weight:</th>
<td itemscope>
<span id="weight" itemprop="weight" itemscope itemtype="http://schema.org/QuantitativeValue">
<span itemprop="value">3.75</span>
<abbr itemprop="unitCode" title="grams" content="GRM" >g</abbr>
</span>
</td>
</tr>
<tr>
<th>Width:</th>
<td itemscope>
<span id="width" itemprop="width" itemscope itemtype="http://schema.org/QuantitativeValue">
<span itemprop="value">20</span>
<abbr itemprop="unitCode" content='MMT' title='millimetres' >mm</abbr>
</span>
</td>
</tr>
<tr>
<th>Height:</th>
<td itemscope>
<span id="height" itemprop="height" itemscope itemtype="http://schema.org/QuantitativeValue">
<span itemprop="value">20</span>
<abbr itemprop="unitCode" content='MMT' title='millimetres' >mm</abbr>
</span>
</td>
</tr>
<tr>
<th>Availability:</th>
<td><link itemprop="availability" href="http://schema.org/InStock"/>available</td>
</tr>
...
</table>
</div>