Mon intention est de marquer mon site avec Microdata de manière à ne pas avoir à redéclarer les éléments qui existent déjà dans la page.
Par exemple, mon en-tête contiendra toujours des informations concernant "l'organisation" que représente le site Web. Dans les "Produits" que je propose, je peux spécifier la "Marque" de ce produit. Ainsi, la "marque" de la propriété du produit reproduira les informations "Organisation" mentionnées dans l'en-tête.
Maintenant, je ne pense pas que je suis censé répéter le balisage de l'organisation dans la propriété de la marque du produit, car j'estime qu'il devrait exister un moyen de référencer directement ce produit de l'organisation.
Je n'ai juste pas trouvé le moyen de faire cela, y a-t-il des idées? J'ai vérifié cette réponse et bien qu'utile, cela ne règle pas mon problème.
J'ai cependant essayé de le jouer pour vous donner une idée de mes intentions:
<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>
Cela ne fonctionne pas car il ajoute la propriété "id" à "Organisation" et à "Produit".
la réponse de zigojacko ne correspond pas vraiment à ce à quoi je m'attendais, car il utilise un seul conteneur avec toutes les informations nécessaires pour présenter tout le balisage de son produit.
Cependant, dans mon cas, la présentation du site n'est pas divisée en un conteneur qui contiendrait toutes les informations nécessaires, car les informations relatives à ma société figurent dans l'en-tête et les produits/offres sont proches du pied de page (le formulaire principal permettant de définir ces offres est: au-dessus du pli) et d’autres informations sont dispersées entre chacun de ces conteneurs.
En tant que tel, j’aimerais éventuellement relier la société (qui réside dans l’en-tête) à la marque de chaque produit (qui réside près du pied de page), je ne voudrais tout simplement pas répéter tout le code nécessaire pour décrire la société. préférez créer un lien vers une sorte d'identifiant d'élément.
Il est également possible d'imbriquer chaque contenu de la page dans l'entreprise, mais en tant que commentaire sur cette question, je mentionne cette question spécifique dans Webmasters Stack Exchange. Donc, je sais comment retirer ce type de solution, je me demande simplement s'il est possible de faire référence à un élément existant ailleurs sur la page.
Dans les commentaires de cette question, j'aurais peut-être trouvé un meilleur moyen d'expliquer ce que je veux dire.
Par pointeurs, j'entends un attribut HTML qui pourrait référencer un élément. Dans l'exemple de code que j'ai donné, j'ai une organisation lâche (non imbriquée) que je souhaiterais insérer dans mon deuxième produit Produit au sein de sa propriété de marque, mais sans avoir à copier + coller ou à répercuter à nouveau le produit. J'ai essayé de simuler ce comportement avec l'attribut itemref.
Eh bien, après avoir durement piqué Google pendant plusieurs heures, il a finalement trouvé ce dont j'avais besoin, non ici
<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>
Le résultat est donc:
Person
name: Amanda
nationality [Country]:
name: uk
Person
name: Fernando
nationality [Country]:
name: uk
Person
name: Daniel
nationality [Country]:
name: uk
Et je n'ai déclaré "nationalité" qu'une seule fois dans ce bloc de code. En gros, il s'agit de séparer l'imbrication de HTML de celle des éléments de microdonnées, ou du moins de ne pas croire que ces éléments doivent coïncider, car dans la plupart des cas, nous ne pensons pas que nos données ou notre présentation sont conformes aux éléments de schema.org.
J'espère que cela aidera quelqu'un qui se frappe la tête aussi fort que moi.
Le balisage de schéma pour un produit doit ressembler à: -
<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>
Il est parfaitement correct d'inclure le type d'élément 'Organisation' de la marque dans un schéma de produit s'il existe une organisation déclarée dans l'en-tête de votre page.
Vous pouvez en fait avoir 10 produits sur une page, tous de marques différentes, à condition qu’ils soient marqués dans le type d’article.