如何使用 Microdata 的 'itemref' 来引用产品范围之外列出的类似产品?

How to use Microdata's 'itemref' to reference similar products that are listed outside of the Product scope?

我正在尝试使用微数据使用 Schema.org 定义来定义我的网站。 ItemPage I am displaying the information about a product. Additionally, I want to 当相关产品显示在当前产品范围之外时。

我尝试使用 itemref attribute. However, when I review the page on Structured Data Testing Tool 实现此目的,它没有显示相关产品是 ItemPage 节点的一部分。

<body itemscope itemtype="http://schema.org/ItemPage">
  <header itemprop="hasPart" itemscope itemtype="http://schema.org/WPHeader">
  </header>

  <article itemprop="mainEntity" itemscope itemtype="http://schema.org/Product" id="details_10">
    <h2 itemprop="name">Product 10</h2>
  </article>

  <aside>
    <article itemref="details_10" itemscope itemtype="http://schema.org/Product">
      <h3 itemprop="name">Product 20</h3>
    </article>

    <article itemref="details_10" itemscope itemtype="http://schema.org/Product">
      <h3 itemprop="name">Product 30</h3>
    </article>
  </aside>

  <footer itemprop="hasPart" itemscope itemtype="http://schema.org/WPFooter">
  </footer>

</body>

必须反过来使用:

  • itemref 属性需要位于表示要添加属性的项目的元素上。这将是您的主要产品。

  • 您要添加的元素需要 itemprop 属性(您缺少该属性,以及 isSimilarTo 属性)和 iditemref 属性引用。这些将是您的情况下的类似产品。

所以,这将给出:

<body itemscope itemtype="http://schema.org/ItemPage">

 <article itemprop="mainEntity" itemscope itemtype="http://schema.org/Product" itemref="details_20 details_30"></article>

 <aside>
   <article id="details_20" itemprop="isSimilarTo" itemscope itemtype="http://schema.org/Product"></article>
   <article id="details_30" itemprop="isSimilarTo" itemscope itemtype="http://schema.org/Product"></article>
 </aside>

</body>

此标记的问题是两个 isSimilarTo 属性也被添加到 ItemPage 中(因为它们嵌套在它下面),这是不正确的。为避免这种情况,最好的解决方案是不要在 body 元素上指定 ItemPage,而是在 div 或类似元素上指定。

<body>

 <div itemscope itemtype="http://schema.org/ItemPage">

   <article itemprop="mainEntity" itemscope itemtype="http://schema.org/Product" itemref="details_20 details_30"></article>

 </div>

 <aside>
   <article id="details_20" itemprop="isSimilarTo" itemscope itemtype="http://schema.org/Product"></article>
   <article id="details_30" itemprop="isSimilarTo" itemscope itemtype="http://schema.org/Product"></article>
 </aside>

</body>

(您也可以使用 itemref 来避免必须将主 Product 嵌套在 ItemPage 下。这也允许在 head 元素,例如。)