Могу ли я использовать @id для объединения нескольких скриптов JSON-LD с действительным объектом? - PullRequest
0 голосов
/ 28 декабря 2018

Это действительно?Мне нужна возможность соединить блоки разных скриптов на одной странице с действительным объектом.

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Product",
  "@id": "#111",
  "description": "Test description",
  "name": "My Product"
}
</script>
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Product",
  "@id": "#111",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "3.5",
    "reviewCount": "11"
  }
}
</script>

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Я часто так делаю, когда система обзора добавляет свою собственную разметку отдельно к разметке продукта.Он отлично работает.

Вы можете проверить это в инструменте тестирования структурированных данных.Он должен объединить два в один.

0 голосов
/ 29 декабря 2018

почему эти скрипты должны быть объединены?Они описывают один и тот же продукт и являются частично избыточными.

Но если вы ищете возможность присоединиться к скрипту по id - да, он существует.Т.е. у вас есть два сценария: первый - продукт и его рейтинг, второй - организация, предлагающая этот продукт.В этом случае соединение будет выглядеть так:

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"makesOffer": {
"@type": "Offer",
"itemOffered": {
"@type": "Product",
"@id": "https://www.example.com#111"
}
}
}
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Product",
"id": "https://www.example.com#111",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "3.5",
"reviewCount": "11"
}
}
</script>
...