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

时间:2019-10-07 16:54:48

标签: html schema.org microdata

我正在尝试使用Microdata通过Schema.org定义来定义我的网站。我在ItemPage上显示有关产品的信息。另外,我想在相关产品显示在当前产品范围之外时link similar products to the current product

我尝试使用itemref属性来实现这一点。但是,当我查看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>

1 个答案:

答案 0 :(得分:1)

它必须反过来使用:

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

  • 您要添加的元素需要itemprop属性(缺少该属性以及isSimilarTo属性),并需要一个{{ {1}}属性。这些就是您所用的类似产品。

因此,这将给出:

id

此标记的问题在于,两个itemref属性也被添加到<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,而是在ItemPage或类似的元素上指定

body

(您也可以使用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下。这也可以在{{1 }}元素。)