2016-11-17 1 views
0

Я знаю, что это можно сделать, но я просто не могу найти пример.Разметка схемы, относящаяся к данным за пределами div

У меня есть организатор Schema.org в заголовке моей страницы.

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

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

<div id="organization" itemscope itemtype="http://schema.org/Organization"> 
    <asp:HyperLink ID="lnkHome" runat="server" itemprop="url"> 
     <asp:Image ID="imgLogo" runat="server" itemprop="logo" /> 
    </asp:HyperLink> 
    <meta itemprop="name" content="My Co" /> 
</div> 

<article itemscope itemtype="http://schema.org/Article"> 
    <span itemprop="publisher" itemscope itemtype="http://schema.org/Organization" itemref="organization"></span> 
</article> 
+1

Возможный дубликат [HTML5 Microdata - itemref для другого предмета (Person работает для организации)] (http://stackoverflow.com/questions/17186058/html5-microdata-itemref-to-another-itemscope-person-works- для организации) (в [мой ответ] (http://stackoverflow.com/a/33984412/1591669), я связан со многими примерами) – unor

+0

@unor - концепция такая же, но ее несколько иной сценарий, m все еще получаю ошибки проверки, которые когда-либо пытались. Добавляете itemref к статье или издателю? –

+0

Тогда ваш вопрос, похоже, касается вашей конкретной проблемы - в этом случае вы должны включить разметку в свой вопрос. Что касается места размещения атрибута 'itemref': см. [« Tl; dr »в моем ответе] (http://stackoverflow.com/a/33984412/1591669) – unor

ответ

0

Как explained in my answer элемент вы хотите добавить должен иметь атрибут itemprop. Так что это структура вам нужно:

<div itemprop="publisher" itemscope itemtype="http://schema.org/Organization" id="organization"> 
</div> 

<article itemscope itemtype="http://schema.org/Article" itemref="organization"> 
</article> 

(Это должно быть использовано только на страницах, где Organization добавляется в publisher, в противном случае это недопустимый HTML + микроданных, если itemprop="publisher" не принадлежит к itemscope.)

Если теперь заменить <asp:…> элементов с фактическими HTML элементами, SDTT Google, способен понять, что вы хотите передать: он добавляет свойства name/url/logo к Organization пункту, и он добавляет этот Organization детали как publisher на номер Article.

<div itemprop="publisher" itemscope itemtype="http://schema.org/Organization" id="organization"> 
    <a itemprop="url" href="/example"> 
    <img itemprop="logo" src="example.png" alt="" /> 
    </a> 
    <meta itemprop="name" content="My Co" /> 
</div> 

<article itemscope itemtype="http://schema.org/Article" itemref="organization"> 
</article> 

Ошибки, которые до сих пор представляют отчеты SDTT Google, не являются фактическими ошибками с помощью Schema.org/Microdata. Это просто свойства, которые требуется Google для получения результатов поиска. В случае logo, Google wants to see an ImageObject value.

+0

Спасибо за помощь. Я уверен, что раньше пробовал эту конфигурацию, но теперь она работает. Странно то, что теперь мой логотип (а также изображение статьи) возникают из-за проблем с сообщением - logo.itemtype имеет недопустимое значение. Перед изменением логотип одобрен штрафом. –

Смежные вопросы