Как использовать микроданные для представления похожих продуктов на странице товара? - PullRequest
1 голос
/ 06 октября 2019

Я пытаюсь использовать микроданные для определения своего веб-сайта, используя определения 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>

Когда я проверяю код с помощью Инструмент тестирования структурированных данных , аналогичный раздел продуктов отображается как отдельные узлы, а не как часть ItemPage.

Как правильно перечислить похожие похожие продукты в соответствии с текущим определяемым продуктом?

1 Ответ

1 голос
/ 07 октября 2019

Решение 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 для основного продукта, вы можете использовать микроданные itemref ( пример ).

Решение 3: ID

(Вы должны толькоидите по этому пути, если решения 1 или 2 невозможны, поскольку не все потребители будут поддерживать это решение 3.)

Подобно тому, что вы используете в настоящее время, вы можете присвоить первичному продукту URI в качестве идентификатора (с атрибутом 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...