Повторное использование микроданных в рамках другого элемента


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

Например, мой заголовок всегда будет содержать информацию об "Организации", которую представляет веб-сайт. В разделе "Продукты", которые я предлагаю, я могу указать "Бренд" этого продукта. Таким образом, свойство продукта "бренд" будет копировать информацию "Организация", указанную в заголовке.

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

Я просто не нашел способа сделать это, есть какие-нибудь идеи? Я проверил этот ответ и, хотя он полезен, он не решает мою проблему.

Однако я попытался разобраться с этим, чтобы дать вам представление о моих намерениях:

<span itemscope itemtype="http://schema.org/Organization" itemref="myCompany">
    <meta itemprop="name" content="Company Name" />
    <meta itemprop="url" content="http://example.com/" />
    <meta itemprop="description" content="description" />
</span>

<span itemscope itemtype="http://schema.org/Product">
    <span itemprop="brand" itemscope itemtype="http://schema.org/Organization">
        <meta itemprop="id" content="myCompany" id="myCompany" />
    </span>
    <meta itemprop="name" content="Foo product" />
    <meta itemprop="description" content="You can do Bar with it" />
</span>

Это не работает, так как добавляет свойство "идентификатор" как к "Организации", так и "Продукт".

ПРАВКА1:

Ответ Зигояцко на самом деле не соответствовал тому, что я ожидал, поскольку он использует один контейнер со всей информацией, необходимой для представления всей разметки для своего продукта.

Однако в моем случае макет сайта не разбит на контейнер, который содержал бы всю необходимую информацию, поскольку информация о моей компании находится в верхнем колонтитуле, а продукты/предложения находятся рядом с нижним колонтитулом (поскольку основная форма для определения этих предложений находится над сгибом) и другие информация разбросана между каждым из этих контейнеров.

Таким образом, я бы в конечном итоге хотел связать компанию (которая находится в верхнем колонтитуле) с брендом каждого продукта (который находится рядом с нижним колонтитулом), я просто не хотел бы повторять весь код, необходимый для описания компании, и поэтому предпочел бы ссылку на какой-то идентификатор товара.

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

ПРАВКА2:

В комментариях к этому вопросу я мог бы найти лучший способ объяснить, что я имею в виду.

Под указателями я подразумеваю атрибут html, который может ссылаться на элемент. В приведенном мною примере кода у меня есть свободная (не вложенная) организация, которую я хотел бы быть вставлен в мой второй товарный продукт в пределах его фирменной собственности, но без необходимости копировать+вставлять или повторять снова в продукте. Я попытался смоделировать это поведение с помощью атрибута itemref.

Author: Community, 2014-06-30

2 answers

Разметка схемы для продукта должна быть такой:-

<div itemscope itemtype="http://schema.org/Product">
    <a itemprop="url" href="http://www.example.com/product">
            <div itemprop="name"><strong>Product Name</strong></div>
    </a>
    <div itemprop="description">This is my product description.</div>
    <div itemprop="brand" itemscope itemtype="http://schema.org/Organization">
        <span itemprop="name">My Brand</span></div>
    <div itemprop="manufacturer" itemscope itemtype="http://schema.org/Organization">
Manufactured by: <span itemprop="name">The Manufacturer</span></div>
    <div>Model: <span itemprop="model">V1.0</span></div>
    <div>Product ID: <span itemprop="productID">abc</span></div>
    <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
        <span itemprop="ratingValue">5</span> based on <span itemprop="reviewCount">149</span> reviews
        </div>
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"><span itemprop="price">£9.99</span><link itemprop="itemCondition" href="http://schema.org/NewCondition" /> New
        </div>
    </div>

Совершенно нормально включать тип элемента "Организация" для бренда в схему продукта, если в заголовке вашей страницы указана организация.

На самом деле у вас может быть 10 товаров на странице, все с разными брендами, при условии, что они помечены в типе товара.

 2
Author: zigojacko, 2014-06-30 15:19:29

Ну, после того, как я усердно тыкал в Google в течение нескольких часов, он, наконец, выдал то, что мне было нужно, прямо здесь

<div itemscope itemtype="http://schema.org/Person" itemref="a1 b"></div>
<p id="a1">Name: <span itemprop="name">Amanda</span></p>

<div itemscope itemtype="http://schema.org/Person" itemref="a2 b"></div>
<p id="a2">Name: <span itemprop="name">Fernando</span></p>

<div itemscope itemtype="http://schema.org/Person" itemref="a3 b"></div>
<p id="a3">Name: <span itemprop="name">Daniel</span></p>

<div id="b" itemprop="nationality" itemscope itemtype="http://schema.org/Country" itemref="c"></div>
<div id="c"><p>Nationality: <span itemprop="name">uk</span></p></div>

Таким образом, результат таков:

Person
    name: Amanda
    nationality [Country]:
        name: uk
Person
    name: Fernando
    nationality [Country]:
        name: uk
Person
    name: Daniel
    nationality [Country]:
        name: uk

И я только один раз объявил "национальность" в этом блоке кода. Таким образом, в основном это отделение вложенности HTML от вложенности элементов микроданных или, по крайней мере, не ошибается, предполагая, что они должны совпадать, поскольку в большинстве случаев мы не думаем, что наши данные или макет соответствуют schema.org предметы.

Надеюсь, что это помогает тому, кто бьется головой так же сильно, как я.

 1
Author: Fernando Silva, 2014-07-04 11:40:43