sitecore
Sitecoreのクエリ構文
サーチ…
備考
テンプレート名とテンプレートIDの比較対クエリの項目名:
テンプレートIDやアイテム名は使用しないことを強くお勧めします。これにより、テンプレートやアイテムの名前が変更された場合でも、依然としてクエリが機能するようになります。
ただし、 /sitecore/content
や/sitecore/system/Marketing Control Panel
OOTB構造を照会しているときは、OOTBテンプレートを使用して作業するときは例外です。このような状況では、読みやすさの低下は、クエリの破損のリスクよりもしばしば高くなります。なぜなら、これらのテンプレートの名前が変更される可能性がはるかに低いからです。
上記の私の例では、readabiltiyのためにテンプレート名が使用されていることに注意してください。これらのクエリは、テンプレート名がテンプレートIDに置き換えられない限り、本番環境では使用しないでください。
リファレンスシート:
私は、SitecoreクエリーチートシートがWeb上でダウンロードできなくなったことに気付きました(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
)のテンプレートは、my-account
User Account Page
現在のアイテム:
現在のアイテムは、 home
アイテムまたは任意のサイトのhome
アイテムの下にある任意のページである可能性があります。このクエリは、現在の祖先であるhome
アイテムの下にHomepage
テンプレートのアイテムがない場合項目)。
クエリ:
query:./ancestor-or-self::*[@@templatename='Homepage']/*[@@templatename='my-account']
結果:
foo-site
サイトのhome
アイテムまたはその子孫の1つからクエリを実行する場合:
/sitecore/content/foo-site/home/my-account
bar-site
のhome
アイテムまたはその子孫の1つからクエリを実行する場合:
/sitecore/content/bar-site/home/my-account
baz-site
のhome
アイテムまたはその子孫の1つからクエリを実行する場合:
/sitecore/content/baz-site/home/my-account