Использование HTML5 + микроданных тега <meta>в <body> - PullRequest
5 голосов
/ 03 сентября 2011

Я хочу указать, находится ли Товар на складе, используя тег <meta> Микроданных HTML5 +, используя Schema.org .

Я не уверен, что это правильный синтаксис:

<div itemscope itemtype="http://schema.org/Product">
  <h2 itemprop="name">Product Name</h2>
  <dl itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    <dt itemprop="price">$1</dt>
    <meta itemprop="availability" itemscope itemtype="http://schema.org/ItemAvailability" itemid="http://schema.org/InStock">
  </dl>
</div>

Ответы [ 6 ]

9 голосов
/ 09 сентября 2011

Тег meta нельзя использовать с таким предметом. Правильный способ выразить это через каноническую ссылку, используя тег link:

<div itemscope itemtype="http://schema.org/Product">
  <h2 itemprop="name">Product Name</h2>
  <dl itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    <dt itemprop="price">$1</dt>
    <link itemprop="availability" href="http://schema.org/InStock">
  </dl>
</div>
3 голосов
/ 01 августа 2013

Я сделал то же самое, что и OP, и получил то же самое, где доступность инструмента тестирования связана с подпунктом ... Я наконец смог получить его для правильной проверки с помощью этого:

<meta itemprop='availability' content='http://schema.org/InStock'>

Вот выходные данные структурированного инструмента Google для предложения:

Item 1
type:   http://schema.org/offer
property:   
price:  Price: $139.00
pricecurrency:  USD
availability:   http://schema.org/InStock
1 голос
/ 26 июля 2016

Хотя разрешено использовать meta (если используется для микроданных!) В body, ваш пример неверен по нескольким причинам:

  • Элемент dl может содержать только элементы dt или ddscript / template).Вы должны либо разместить meta внутри dt / dd, либо за пределами dl (но тогда вам придется переместить itemscope).

  • Элемент meta должен иметь атрибут content.

  • Использование itemid для этой цели некорректно, и http://schema.org/ItemAvailability не является типом, поэтому использование itemscope + itemtype тоже неверно.

  • Однако, если значение itemprop является URI, вы должны использовать вместо него элемент linkэлемента meta.

Кроме того, значение price не должно содержать символ валюты, и кажется, что ваш dt на самом деле должен быть dddt, содержащий "Price" или что-то в этом роде.

Таким образом, вы можете использовать:

<dl itemprop="offers" itemscope itemtype="http://schema.org/Offer">
  <dt>Price</dt>
  <dd>$<span itemprop="price">1</span> <link itemprop="availability" href="http://schema.org/InStock" /></dd>
</dl>
0 голосов
/ 23 января 2014

См. Под заголовком Невидимый контент (не уверен, поможет ли это):

Инструменты Google для веб-мастеров - О микроданных

В общем, Googleне будет отображать контент, который не виден пользователю.Другими словами, не показывайте контент пользователям одним способом, а используйте скрытый текст для разметки информации отдельно для поисковых систем и веб-приложений.Вы должны разметить текст, который фактически отображается вашим пользователям, когда они посещают ваши веб-страницы.

Из этого правила есть несколько исключений.В некоторых ситуациях может оказаться полезным предоставить поисковым системам более подробную информацию, даже если вы не хотите, чтобы эта информация была видна посетителям вашей страницы.Например, если рейтинг ресторана составляет 8,5, пользователи (но не поисковые системы) будут считать, что рейтинг основан на шкале от 1 до 10.В этом случае вы можете указать это, используя метаэлемент, например:

<div itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating"> Rating: <span itemprop="value">8.5</span> <meta itemprop="best" content="10" /> </div>

0 голосов
/ 06 февраля 2013

Это пример из руководства по началу работы schema.org для поддержки ответа @ Lawrence.

Однако мне не нравится использование тега ссылки внутри теластр.От MDN :

Тег ссылки может встречаться только в элементе head;

Нет лучшего способа определения доступности с помощьюдействительная разметка?

0 голосов
/ 03 сентября 2011

Я сделал jsfiddle здесь: http://jsfiddle.net/dLryX/,, затем поместил вывод (http://jsfiddle.net/dLryX/show/) в инструмент rich snippets.

Это пришло с:

enter image description here

Я считаю, что синтаксис правильный, и что Предупреждение не важно, поскольку у него нет свойства, так как это метатег.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...