J'ai une page qui contient une liste de personnes avec un lien de chacune d'elles qui ouvrira la page principale de cette personne.
Chaque lien doit avoir ses propres données structurées.
J'utilise JSON-LD, mais le l'exemple donné est au format Microdata . Donc, pour l'écrire au format JSON-LD, dois-je écrire les scripts complets pour chaque URL?
Le script pour une URL est
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Person",
"address": {
"@type": "PostalAddress",
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98052",
"streetAddress": "20341 Whitworth Institute 405 N. Whitworth"
},
"colleague": [
"http://www.xyz.edu/students/alicejones.html",
"http://www.xyz.edu/students/bobsmith.html"
],
"email": "mailto:[email protected]",
"image": "janedoe.jpg",
"jobTitle": "Professor",
"name": "Jane Doe",
"telephone": "(425) 123-4567",
"url": "http://www.janedoe.com"
}
</script>
Disons que j'ai une liste de 15 personnes sur une page. Devrais-je écrire ces 15 scripts séparément ou y a-t-il un autre moyen d'écrire JSON-LD dans ce cas?
Vous avez plusieurs options:
ItemList
Si vous souhaitez fournir les éléments Person
sous forme d'éléments de niveau supérieur (c'est-à-dire, non imbriqués en tant que valeurs d'une propriété d'un autre type), vous pouvez utiliser plusieurs éléments script
ou un élément script
. avec @graph
:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Person"
}
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Person"
}
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@graph":
[
{
"@type": "Person"
},
{
"@type": "Person"
}
]
}
</script>
Si vous souhaitez fournir les éléments Person
en tant que valeurs d'une propriété d'un autre type, utilisez un tableau en tant que valeur .
Exemple: Vous pourriez avoir un Organization
et vouloir référencer le Person
s employé avec le employee
propriété:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"employee":
[
{
"@type": "Person"
},
{
"@type": "Person"
}
]
}
</script>
Si vous souhaitez fournir les éléments Person
sous forme de liste, vous pouvez utiliser le type ItemList
.
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "ItemList",
"itemListElement": [
{
"@type": "Person"
},
{
"@type": "Person"
}
]
}
</script>
Vous pouvez appliquer une propriété BreadcrumbList à votre liste. Quelque chose comme ça:
{
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"name": "Name of the list",
"description": "Description of the list",
"itemListElement":
[
{
"@type": "ListItem",
"position": 1,
"item":
{
"@type": "Person",
"@id": "https://example.com/person1",
"name": "name of person1"
}
},
{
"@type": "ListItem",
"position": 2,
"item":
{
"@type": "Person",
"@id": "https://example.com/person2",
"name": "name of person2"
}
}
]
}