sitecore
Синтаксис запроса Sitecore
Поиск…
замечания
Имена шаблонов и идентификаторов шаблонов против имен элементов в запросах:
Я настоятельно рекомендую вам использовать идентификаторы шаблонов, а не имена шаблонов или имена элементов в ваших запросах. Это гарантирует, что ваши запросы будут работать, даже когда шаблоны и / или элементы будут переименованы.
Единственным исключением является работа с шаблонами OOTB при запросе структуры OOTB, например /sitecore/content или /sitecore/system/Marketing Control Panel . В этих ситуациях потеря удобочитаемости часто больше, чем риск разрыва запросов, поскольку эти шаблоны гораздо реже переименовываются.
Обратите внимание, что имена шаблонов использовались в моих примерах выше, для чтения. Эти запросы не должны использоваться в производстве, если имена шаблонов не заменены идентификаторами шаблонов.
Справочный лист:
Я заметил, что Sitetore Query Cheat Sheet больше не доступен для загрузки в Интернете (все ссылки, размещенные в Sitecore, теперь перенаправляются на 404 страницы). К счастью, у меня была копия на моей машине и добавили снимок экрана ниже:
Выбор по пути к элементу
Запрос:
query:/sitecore/content/home/foo/bar
Результат
bar
Относительный запрос
Текущий товар:
bar (path: /sitecore/content/home/foo/bar)
Запрос:
query:./child/grandchild
Результат:
grandchild (path: /sitecore/content/home/foo/bar/child/grandchild)
Запрос атрибутов элемента
Запрос:
query:/sitecore/content/[@@templatename='Homepage']
Результат:
home (name: home, path: /sitecore/content/home, template name: Homepage)
Специфичный для сайта запрос
Структура дерева:
/sitecore
/content
/foo-site
/home
/my-account
/bar-site
/home
/my-account
/baz-site
/home
/my-account
- Шаблон каждого элемента сайта (
foo-site,bar-site,baz-site) называетсяSite Node. - Шаблон каждого домашнего элемента (
home,home,home) называетсяHomepage - Шаблон каждой учетной записи пользователя (
my-account,my-account,my-account) называетсяUser Account Page
Текущий товар:
Текущий элемент может быть home элементом или любой страницей под home элементом для любого из указанных сайтов, и этот запрос будет по-прежнему работать (при условии, что нет элементов с шаблоном Homepage под home элементами, которые являются предками текущего вещь).
Запрос:
query:./ancestor-or-self::*[@@templatename='Homepage']/*[@@templatename='my-account']
Результат:
Если запрос из home элемента или одного из его потомков на сайте foo-site site:
/sitecore/content/foo-site/home/my-account
Если запрос из home элемента или одного из его потомков на сайте bar-site сайта:
/sitecore/content/bar-site/home/my-account
Если вы запрашиваете у home элемента или одного из его потомков на сайте baz-site сайта:
/sitecore/content/baz-site/home/my-account
