今回の記事では Sitecore(サイトコア) クエリの基本的な使い方について紹介します。
1.Sitecore クエリとは
Sitecoreクエリは、Sitecoreコンテンツツリーのアイテムの場所をパスにして使用するものです。
以下が、クエリ式の例です。
- "query:/sitecore/content/Home//*"
sitecore/content/Home配下のアイテムを全て取得します。
- "query:/sitecore/content/Home//*[@@templatename='lyzon']"
sitecore/content/Home配下でかつ、テンプレート名にlyzonを含む全てのアイテムを取得します。
*パスとテンプレートで使用されるアイテム名は、大文字と小文字の区別がされません。
2.基本的なクエリ式
表記 |
説明 |
使用例 |
/ |
直下のアイテム |
/sitecore/content/Home
siteocre/content/Home直下の全てのアイテム |
// |
配下のアイテム |
/sitecore/content/Home//lyzon…
sitecore/content/Home配下のlyzonという名前のアイテム |
* |
全ての名前のアイテム |
/sitecore/content/Home//*…
sitecore/content/Home配下の全てのアイテム |
@フィールド名 |
指定したフィールドの値 |
/sitecore/content/@Text
sitecore/content直下でTextフィールドを持つ全てのアイテム |
3.データソースを使用してHeaderアイテムを取得する方法
1./sitecore/content/sample1/SampleSite/Settings/Common/配下にHeaderアイテムを作成します。
2./sitecore/layout/Renderings/Project/sample2/Common/配下にHeaderレンダリングを作成します。
3.上記2で作成したHeaderレンダリングにデータソースを記述できるフィールドがあります。そのフィールドにクエリを用いてどこのアイテムを取得するかを記述できます。
今回は、下記の図の様な記述で上記1で作成したアイテムを取得しています。
「上記のクエリの説明」
※前提として「Headerレンダリング」が SampleSite の Top 配下のアイテムに設定されています。
query:./ancester::*[@@templateid = ‘{834BA576-489F-4644-E7274BBD77F0}’]/Setting/Common/Header
./ancester::*:コンテキストアイテムのすべての祖先を返す事ができます。
@@templateid:templateid名を記述する事ができます。(テンプレートID{834BA576-489F-4644-E7274BBD77F0}は、上記1の図のSampleSiteのテンプレートIDです。)
説明は以上です。データソースを用いてアイテムを取得したい際には参考にしてみてください。
< 参考サイト >
Sitecore Query Syntax
※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。