Microdata ItemID для идентификации элементов, разбросанных по HTML-документам/HTML-таблицам
Мой разработчик закодировал список продуктов, используя таблицы HTML. В коде появилось что-то вроде этого:
<table>
<tr class="name">
<td>Product Name #1</td><td>Product Name #2</td><td>Product Name #3</td>
</tr>
<tr class="price">
<td>Product Price #1</td><td>Product Price #2</td><td>Product Price #3</td>
</tr>
<tr class="brand">
<td>Product Brand #1</td><td>Product Brand #2</td><td>Product Brand #3</td>
</tr>
</table>
Вы получаете идею. Визуально это выглядит отлично, но при попытке разметки через schema.org у меня возникают проблемы, поскольку свойства продуктов не существуют, это аккуратные вложенные элементы HTML, но они распределены по всей таблице. Можно ли использовать атрибут ItemID
Microdata, чтобы убедиться, что каждый бренд и цена связаны с правильным названием продукта?
Что-то вроде:
<tr class="name">
<td itemscope itemtype="http://www.schema.org/Product" itemID="Product1">Product Name #1</td>
<td itemscope itemtype="http://www.scema.org/Product" itemID="Product2">Product Name #2</td>
Etc. и т.д. Любые мысли? Будет ли у меня перекодировка страниц для этой работы?
Ответы
Ответ 1
Да, itemid
- верный способ сделать это. Ваш пример будет выглядеть примерно так:
<table>
<tr class="name">
<td itemscope itemtype="http://www.schema.org/Product" itemid="Product1">
<span itemprop="name">Product Name #1</span>
</td>
<td itemscope itemtype="http://www.schema.org/Product" itemid="Product2">
<span itemprop="name">Product Name #2</span>
</td>
</tr>
<tr class="price">
<td itemscope itemtype="http://www.schema.org/Product" itemid="Product1">
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<span itemprop="price">Product Price #1</span>
</div>
</td>
<td itemscope itemtype="http://www.schema.org/Product" itemid="Product2">
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<span itemprop="price">Product Price #2</span>
</div>
</td>
</tr>
</table>
Повторно используя один и тот же itemid
вы сообщаете анализатору микроданных, что говорите об одном и том же элементе в разных частях страницы.
Ответ 2
На самом деле, itemid не будет правильным способом сделать это. В отличие от RDF, модель синтаксического анализа микроданных не объединяет вещи с одинаковым itemid.
Вместо этого вы должны использовать атрибут itemref.
Например:
<div itemscope itemtype="http://schema.org/Product" itemref="foo"></div>
<div id="foo" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<span itemprop="price">Product Price #1</span>
</div>
Вы можете протестировать микроданные, используя https://webmaster.yandex.com/tools/microtest/ в дополнение к Google.