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