sitecore
Sitecore-Abfragesyntax
Suche…
Bemerkungen
Vorlagennamen vs. Vorlagen-IDs vs. Elementnamen in Abfragen:
Ich empfehle Ihnen dringend, in Ihren Abfragen Vorlagen-IDs und keine Vorlagen- oder Elementnamen zu verwenden . Dadurch wird sichergestellt, dass Ihre Abfragen auch dann funktionieren, wenn Vorlagen und / oder Elemente umbenannt werden.
Eine Ausnahme hiervon besteht beim Arbeiten mit OOTB-Vorlagen und beim Abfragen einer OOTB-Struktur, z. B. /sitecore/content
oder /sitecore/system/Marketing Control Panel
. In diesen Situationen ist der Lesbarkeitsverlust oft größer als das Risiko, dass Abfragen brechen, da die Wahrscheinlichkeit, dass diese Vorlagen umbenannt werden, viel geringer ist.
Beachten Sie, dass in den obigen Beispielen zur besseren Lesbarkeit Schablonennamen verwendet wurden. Diese Abfragen sollten in der Produktion nicht verwendet werden, es sei denn, die Namen der Vorlagen werden durch Vorlagen-IDs ersetzt.
Referenzblatt:
Mir ist aufgefallen, dass das Sitecore Query Cheat Sheet nicht mehr zum Download im Web verfügbar ist (alle Sitecore-gehosteten Links werden jetzt auf 404 Seiten umgeleitet). Zum Glück hatte ich eine Kopie auf meinem Rechner und habe unten einen Screenshot hinzugefügt:
Wählen Sie nach Artikelpfad
Abfrage:
query:/sitecore/content/home/foo/bar
Ergebnis
bar
Relative Abfrage
Aktueller Gegenstand:
bar (path: /sitecore/content/home/foo/bar)
Abfrage:
query:./child/grandchild
Ergebnis:
grandchild (path: /sitecore/content/home/foo/bar/child/grandchild)
Artikelattribute abfragen
Abfrage:
query:/sitecore/content/[@@templatename='Homepage']
Ergebnis:
home (name: home, path: /sitecore/content/home, template name: Homepage)
Standortspezifische Abfrage
Baumstruktur:
/sitecore
/content
/foo-site
/home
/my-account
/bar-site
/home
/my-account
/baz-site
/home
/my-account
- Die Vorlage jedes Site-Elements (
foo-site
,bar-site
,baz-site
) trägt den Namen "Site Node
. - Die Vorlage jedes Heimgegenstands (
home
,home
,home
) wird alsHomepage
- Die Vorlage jedes Benutzerkontenelements (
my-account
,my-account
,my-account
) wird alsUser Account Page
Aktueller Gegenstand:
Das aktuelle Element kann das home
Element oder eine beliebige Seite unter dem home
Element für eine der angegebenen Websites sein. Diese Abfrage funktioniert weiterhin (vorausgesetzt, es befinden sich keine Elemente mit der Homepage
Vorlage unter den home
Elementen, die einen Vorfahren des aktuellen Objekts sind Artikel).
Abfrage:
query:./ancestor-or-self::*[@@templatename='Homepage']/*[@@templatename='my-account']
Ergebnis:
Wenn Sie vom home
Objekt oder einem seiner Nachkommen auf der foo-site
der foo-site
abfragen:
/sitecore/content/foo-site/home/my-account
Wenn Sie vom home
Element oder einem seiner Nachkommen auf der bar-site
abfragen:
/sitecore/content/bar-site/home/my-account
Wenn Sie vom home
Objekt oder einem seiner Nachkommen auf der baz-site
abfragen:
/sitecore/content/baz-site/home/my-account