sitecore
Sintaxis de consultas de Sitecore
Buscar..
Observaciones
Nombres de plantillas frente a identificadores de plantillas frente a nombres de elementos en consultas:
Recomiendo encarecidamente que utilice los ID de plantilla y no los nombres de plantillas o nombres de elementos en sus consultas. Esto asegurará que sus consultas seguirán funcionando, incluso cuando se renombren las plantillas y / o los elementos.
La única excepción a esto es cuando se trabaja con plantillas OOTB, mientras se consulta una estructura OOTB, por ejemplo, /sitecore/content
o /sitecore/system/Marketing Control Panel
. En estas situaciones, la pérdida de legibilidad es a menudo mayor que el riesgo de ruptura de consultas, ya que es mucho menos probable que se cambie el nombre de estas plantillas.
Tenga en cuenta que los nombres de las plantillas se usaron en mis ejemplos, arriba, por motivos de lectura. Esas consultas no deben usarse en producción, a menos que los nombres de las plantillas se reemplacen con los ID de plantilla.
Hoja de referencia:
Noté que la hoja de referencia de Sitecore Query ya no está disponible para descargar en la web (todos los enlaces alojados en Sitecore ahora se redirigen a 404 páginas). Afortunadamente, tenía una copia en mi máquina, y he añadido una captura de pantalla, a continuación:
Seleccionar por ruta de elemento
Consulta:
query:/sitecore/content/home/foo/bar
Resultado
bar
Consulta relativa
Elemento actual:
bar (path: /sitecore/content/home/foo/bar)
Consulta:
query:./child/grandchild
Resultado:
grandchild (path: /sitecore/content/home/foo/bar/child/grandchild)
Consulta de atributos de artículo
Consulta:
query:/sitecore/content/[@@templatename='Homepage']
Resultado:
home (name: home, path: /sitecore/content/home, template name: Homepage)
Consulta específica del sitio
Estructura de árbol:
/sitecore
/content
/foo-site
/home
/my-account
/bar-site
/home
/my-account
/baz-site
/home
/my-account
- La plantilla de cada elemento del sitio (
foo-site
,bar-site
,baz-site
) se denominaSite Node
. - La plantilla de cada elemento de inicio (
home
,home
,home
) se llamaHomepage
- La plantilla de cada elemento de cuenta de usuario (
my-account
,my-account
,my-account
) se denominaUser Account Page
Elemento actual:
El elemento actual podría ser el elemento de home
o cualquier página debajo del elemento de home
para cualquiera de los sitios dados, y esta consulta seguirá funcionando (siempre que no haya elementos con la plantilla de la Homepage
debajo de los elementos de home
que son un antepasado de la actual ít).
Consulta:
query:./ancestor-or-self::*[@@templatename='Homepage']/*[@@templatename='my-account']
Resultado:
Si consulta desde el elemento de home
o uno de sus descendientes en el foo-site
site:
/sitecore/content/foo-site/home/my-account
Si realiza consultas desde el elemento de home
o uno de sus descendientes en el bar-site
sitio de bar-site
:
/sitecore/content/bar-site/home/my-account
Si realiza consultas desde el elemento de home
o uno de sus descendientes en el baz-site
site:
/sitecore/content/baz-site/home/my-account