2016-11-17 1 views
0

Ich weiß, dass dies getan werden kann - aber ich kann einfach kein Beispiel finden.Schema Markup in Bezug auf Daten außerhalb von div

Ich habe ein Schema.org Organization div im Header meiner Seite.

Die Seite ist ein Artikel, also muss ich einen Herausgeber hinzufügen. Ich möchte keine Daten duplizieren und weiß, dass Sie auf andere Elemente auf der Seite nach ID verweisen können, aber ich bin mir nicht sicher über die Gesamtsyntax.

Hier bin ich. Ich bekomme immer noch 2 Fehler, dass das Logo und die Namensfelder erforderlich sind - aber darauf verweise ich nicht?

<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

Mögliches Duplikat von [HTML5 Microdata - itemref zu einem anderen itemscope (Person arbeitet für Organisation)] (http://stackoverflow.com/questions/17186058/html5-microdata-itemref-to-another-itemscope-personal-works- für die Organisation) (in [meine Antwort] (http://Stackoverflow.com/a/33984412/1591669), verknüpfte ich mit vielen Beispielen) – unor

+0

@unor - das Konzept ist das gleiche, aber es ist ein etwas anderes Szenario und ich ' Ich bekomme immer noch Validierungsfehler, die ich immer versuche. Füge die itemref dem Artikel oder dem Publisher hinzu? –

+0

Dann scheint Ihre Frage zu Ihrem spezifischen Problem zu sein - in diesem Fall müssen Sie das Markup in Ihre Frage aufnehmen. In Bezug darauf, wo das Attribut "itemref" platziert werden soll: siehe [das "tl; dr" in meiner Antwort] (http://stackoverflow.com/a/33984412/1591669) – unor

Antwort

0

Als explained in my answer, das Element, das Sie hinzufügen möchten, hat das itemprop Attribut haben. Das ist also die Struktur, die Sie brauchen:

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

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

(Dies ist nur auf den Seiten verwendet werden soll, wo die Organization als publisher hinzugefügt wird, sonst ist es ungültig HTML + Mikrodaten, wenn die itemprop="publisher" gehören nicht zu einem itemscope.)

Wenn Sie jetzt die <asp:…> Elemente mit den tatsächlichen HTML-Elemente ersetzen, Googles SDTT ist in der Lage zu verstehen, was Sie vermitteln wollen: es die name/url/logo Eigenschaften zum Organization Artikel hinzufügt und es fügt diese Organization Artikel als publisher zu dem Article Artikel.

<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> 

Die Fehler, die Google SDTT weiterhin meldet, sind keine tatsächlichen Fehler mit Ihrem Schema.org/Microdata. Dies sind nur Eigenschaften, die Google zum Abrufen der Suchergebnisfunktionen benötigt. Im Fall von logo, Google wants to see an ImageObject value.

+0

Danke für Ihre Hilfe. Ich bin mir sicher, dass ich diese Konfiguration schon einmal ausprobiert habe, aber jetzt scheint es zu funktionieren. Die seltsame Sache ist, dass jetzt mein Logo (sowie das Artikelbild) Probleme melden - logo.itemtype hat einen ungültigen Wert. Vor der Änderung hat sich das Logo gut bewährt. –

Verwandte Themen