如何在一个项目范围内嵌套itemprop实际上应用于不同的itemcope?

时间:2013-05-22 20:12:10

标签: html seo microdata schema.org

TL; DR - >我希望在一个itemscope中嵌套一个itemprop,以实际应用于不同的itemcope。我该怎么做?

这是我所拥有的代码的要点(我已经删除了页面上的类和其他无关元素以专注于重要的事项):

<!-- CODE I HAD -->

<div itemscope itemtype="http://schema.org/Product">
  <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <span itemprop="ratingValue">79</span>
    <h1 itemprop="name">Someproductsoandso</h1>
    <span itemprop="reviewCount">830</span>
  </div>
</div>

<!-- CODE I NOW HAVE -->

<div itemscope itemtype="http://schema.org/Product" itemref="productMicrodata">
  <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <span itemprop="ratingValue">79</span>
    <h1 itemprop="name" id="productMicrodata">Someproductsoandso</h1>
    <span itemprop="reviewCount">830</span>
  </div>
</div>

基本上,我有一个带有儿童aggregateRating的产品itemcope。在aggregateRating范围内,我有类似“ratingValue”和“reviewCount”的东西,我想附加到那个,但是还有一个“name”值,我希望附加到Product(不是aggregateRating,也可以有一个“name” “价值”。

使用我使用的第一块代码,谷歌说我的产品缺少一个名称,因为该名称正在应用于aggregateRating;对于第二个,名称现在应用于aggregateRating和Product。这不是最糟糕的事情,但我希望它只是附加到aggregateRating;你知道怎么解决这个问题而不搞乱当前的标记组织吗?

1 个答案:

答案 0 :(得分:6)

假设你的意思是你只希望它只附加到产品上,按照你的倒数第二段,并且不仅按照你的最后一段附加了aggregateRating,那么我能得到的最好的是

<div itemscope itemtype="http://schema.org/Product" itemref="productMicrodata">
  <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <span itemprop="ratingValue">79</span>
    <h1 itemscope><span itemprop="name" id="productMicrodata">Someproductsoandso</span></h1>
    <span itemprop="reviewCount">830</span>
  </div>
</div>

h1上的itemscope隐藏了aggregateRating项目中h1的子项,因此name属性将仅通过productMicrodata itemref附加到Product项目。但是,它会创建一个没有类型的第三个项目。