sitecore
Syntaxe de requête Sitecore
Recherche…
Remarques
Noms de modèles vs ID de modèles vs noms d'articles dans les requêtes:
Je vous recommande fortement d' utiliser les ID de modèle et non les noms de modèles ou les noms d'éléments dans vos requêtes. Cela garantira que vos requêtes fonctionnent toujours, même lorsque les modèles et / ou les éléments sont renommés.
La seule exception à cela est l'utilisation de modèles OOTB, lors de l'interrogation d'une structure OOTB, par exemple /sitecore/content
ou /sitecore/system/Marketing Control Panel
. Dans ces situations, la perte de lisibilité est souvent plus grande que le risque de rupture des requêtes, car ces modèles sont beaucoup moins susceptibles d'être renommés.
Notez que les noms de modèles ont été utilisés dans mes exemples, ci-dessus, pour des raisons de lecture. Ces requêtes ne doivent pas être utilisées en production, à moins que les noms de modèles ne soient remplacés par des ID de modèle.
Fiche de référence:
J'ai remarqué que le Aide-mémoire Sitecore Query n'est plus disponible au téléchargement sur le Web (tous les liens hébergés sur Sitecore sont désormais redirigés vers 404 pages). Heureusement, j'avais une copie sur ma machine et j'ai ajouté une capture d'écran ci-dessous:
Sélectionner par chemin de l'article
Question:
query:/sitecore/content/home/foo/bar
Résultat
bar
Requête relative
Article courant:
bar (path: /sitecore/content/home/foo/bar)
Question:
query:./child/grandchild
Résultat:
grandchild (path: /sitecore/content/home/foo/bar/child/grandchild)
Requête d'attributs d'article
Question:
query:/sitecore/content/[@@templatename='Homepage']
Résultat:
home (name: home, path: /sitecore/content/home, template name: Homepage)
Requête spécifique au site
Structure de l'arbre:
/sitecore
/content
/foo-site
/home
/my-account
/bar-site
/home
/my-account
/baz-site
/home
/my-account
- Le modèle de chaque élément du site (
foo-site
,bar-site
,baz-site
) est nomméSite Node
. - Le modèle de chaque élément de la maison ( la
home
, lahome
, lahome
) est nomméHomepage
d'Homepage
- Le modèle de chaque élément de compte d'utilisateur (
my-account
,my-account
,my-account
) est nomméUser Account Page
Article courant:
L'élément actuel pourrait être l'élément d' home
ou n'importe quelle page sous l'élément d' home
pour l'un des sites donnés, et cette requête fonctionnera toujours (à condition qu'il n'y ait aucun élément avec le modèle de Homepage
sous les éléments d' home
article).
Question:
query:./ancestor-or-self::*[@@templatename='Homepage']/*[@@templatename='my-account']
Résultat:
En cas d'interrogation à partir de l'élément d' home
ou de l'un de ses descendants sur le foo-site
site:
/sitecore/content/foo-site/home/my-account
Si vous effectuez une requête à partir de l'élément d' home
ou de l'un de ses descendants sur le bar-site
site:
/sitecore/content/bar-site/home/my-account
En cas d'interrogation depuis l'élément d' home
ou l'un de ses descendants sur le baz-site
site:
/sitecore/content/baz-site/home/my-account