web-dev-qa-db-fra.com

Qu'est-ce que Schema @id et quelles sont les URL inaccessibles?

Je suis en train d'installer Schema sur le site Web de mes amis. J'ajoute ServiceType à sa page Maison Clearance , ainsi que tous ses autres services qu'il fournit à la région de Bournemouth en utilisant areaServed > GeoShape > circle, qui est toujours en développement.

Étant donné que le site Web est alimenté par WordPress, le code dans la boucle ressemble à ceci:

<?php ?>
<?php while (have_posts()) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" itemscope itemtype="http://schema.org/Service">
    <?php the_title( '<h1>', '</h1>' ); ?>
    <?php the_content(); ?>
</article>
<?php endwhile; ?>
<?php get_footer(); ?>

WordPress the_ID

Si vous n'êtes pas familier avec WordPress id="post-<?php the_ID(); ?>" ajoute l'identifiant de page unique à l'élément. Comme vous pouvez le voir dans le code ci-dessus, le id="post-X" et le itemscope itemtype="http://schema.org/Service" sont attachés au conteneur d'éléments <article>.

Utilisation de l'outil de test d'extraits enrichis de Google J'obtiens les résultats suivants:

serviceType House Clearance

Comme vous pouvez le constater, @id prend l'ID de l'élément et l'ajoute au chemin de la page sans HASHTAG, ce qui signifie que l'URL n'existe pas et renvoie le statut 404.

Question (s):

  • Quel est le but de Schema @id?
  • Est-ce important que cette URL soit accessible ou non?
  • Devrais-je renommer id="post-<?php the_ID(); ?>" en class="post-<?php the_ID(); ?>" ou ajouter une nouvelle ligne avec serviceType?
4
Simon Hayter

Je pense que c’est un bogue (de longue date) dans le SDTT de Google.

Question pertinente concernant le dépassement de pile:
Pourquoi Google Testing Tool utilise-t-il l'attribut "id" pour générer une URL pour l'élément Microdata?

Dans les microdonnées, seul le itemid attribut doit pouvoir donner un URI pour l'élément, tandis que le id attribut n'est utilisé que pour référencer des éléments sur la même page (avec l'attribut itemref), pas pour fournir des URI. Ainsi, le SDTT ne devrait jamais rien faire avec les valeurs id après avoir suivi toutes les références itemref.

Si vous fournissez une valeur pour l'attribut itemid, elle remplace la valeur extraite par le SDTT à partir de l'attribut id. Ce serait le seul moyen de régler ce problème de notre côté.

<article id="post-29" itemscope itemtype="http://schema.org/Service" itemid="/acme-service#this">

L'attribut itemid prend un URI comme valeur. Il est recommandé d’offrir un document pertinent sous cet URI, mais cela n’est pas requis par Microdata. itemid sert le même objectif que @id dans JSON-LD et resource dans RDFa Lite.

5
unor