如何使用微数据在ItemPage上表示类似产品?

时间:2019-10-06 20:45:50

标签: html schema.org microdata

我正在尝试使用Microdata通过Schema.org定义来定义我的网站。

以下是我当前的HTML标记:

<body itemscope itemtype="http://schema.org/ItemPage">
<link itemprop="url" href="https://example.com/i/10" />

<main role="main">

    <!-- Show the main product of the page -->           
    <div itemprop="mainEntity" itemtype="http://schema.org/Product" itemscope>
        <meta itemprop="name" content="My Main Product 10 Name" />
        <!-- ... more properties that describes current product -->   
    </div>


    <!-- List of 10 similar product the current product being viewed -->
    <div class="list-related-products">

        <div itemtype="http://schema.org/Product" itemscope>
            <meta itemprop="name" content="Related Product 20 Name" />
            <meta itemprop="url" content="https://example.com/i/20" />
            <div itemprop="isSimilarTo" itemscope itemtype="http://schema.org/Product">
                <link itemprop="url" href="https://example.com/i/10" />
            </div>
            <!-- ... more properties -->   
        </div>

        <!-- ... more products -->   
    </div>
</main>

</body>

当我使用Structured Data Testing Tool验证代码时,相似产品部分显示为单独的节点,而不是ItemPage的一部分。

如何在正在定义的当前产品下正确列出相关的相似产品?

1 个答案:

答案 0 :(得分:1)

解决方案1:嵌套

您可以在主要产品内添加isSimilarTo

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

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

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

</article>

解决方案2:itemref

如果您无法在主产品的HTML元素下嵌套类似产品,则可以使用Microdata的itemrefexample)。

解决方案3:ID

(您仅应在无法使用解决方案1或2的情况下使用此方法,因为并非所有消费者都将支持此解决方案3。)

类似于您当前正在使用的产品,您可以给主产品一个URI作为标识符(带有Microdata的itemid属性),并在类似产品中将此URI作为isSimilarTo的值进行引用。

<article itemprop="mainEntity" itemscope itemtype="http://schema.org/Product" itemid="https://example.com/i/10#this">
  <h2 itemprop="name">Product 10</h2>
</article>

<aside>
  <article itemscope itemtype="http://schema.org/Product">
      <h3 itemprop="name">Product 20</h3>
      <link itemprop="isSimilarTo" href="https://example.com/i/10#this" />
  </article>

  <article itemscope itemtype="http://schema.org/Product">
      <h3 itemprop="name">Product 30</h3>
      <link itemprop="isSimilarTo" href="https://example.com/i/10#this" />
  </article>
</aside>