クエリを使用してデータ ソースのコンテキストを判断する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
パーシャル デザインとスニペットを作成するときは、レンダリングを特定のデータ ソースにポイントすると便利です。たとえば、3つの異なるサイトでパーシャル デザインを使用し、このパーシャル デザインのレンダリングでサイトのコンテキストを使用する場合です。これを行うには、レンダリングのデータ ソースを手動で変更しますが、クエリを使用することもできます。
たとえば、共有サイトでは、イメージ レンダリングを含むHeaderという名前のパーシャル デザインを使用します。画像のデータソースフィールドでクエリ ( query:$site/Data/Images/Logo ) を使用する場合、この部分的なデザインが他のサイトで使用されていると、画像レンダリングは現在のサイトの下の画像データソースの解決を試みます。
子アイテムを含むレンダリングバリアントを作成することで、現在のコンテキストアイテムに対して実行するクエリを指定できますquery: これにより、アイテムをクエリし、$homeや $siteなどのSXAトークンを使用できます。たとえば、レンダリングバリアントを特定のテンプレートの子アイテムにのみ表示したい場合などです。クエリはqueryで開始し、標準のSitecoreクエリ構文を使用する必要があります。
次の表に、クエリ構文の例を示します。
|
Example |
Query |
|---|---|
|
現在のページの子 |
query:.//* |
|
現在のサイトのホームアイテム |
query:$home |
|
現在のページの親アイテム |
query:.. |
|
現在のページの親アイテムの親 |
query:../.. |
|
サイトのホームページの下にあるすべてのアイテム |
query:$home//* |
|
サイトのホームページの下にあるすべてのアイテムで、追加の並べ替えが適用されています |
query:$home//*@@name='News' |
|
現在のアイテムの下にあるPageテンプレートのすべてのアイテム |
query:.//*@@templatename='Page' |
|
現在のサイトのHomeアイテムの下にあるPageテンプレートのすべてのアイテム |
query:$site/*@@name='Home'//*@@templatename='Page' |
クエリ子アイテムをレンダリングバリアントに追加する
クエリ子アイテムをレンダリングバリアントに追加する
クエリを使用してコンテキストを切り替えるには、クエリの子アイテムをレンダリング バリアントに追加するか、レンダリングのデータ ソースにクエリを追加します。
クエリの子アイテムをレンダリングバリアントに追加するには:
-
コンテンツ エディターで、サイトをクリックし、Presentation/Rendering Variantsフォルダーを開きます。このフォルダには、バリアントを許可するすべてのレンダリングが一覧表示されます。
-
バリアントを追加するレンダリングを右クリックし、Insert、Variant Definitionの順にクリックします。
-
名前とバリアントの詳細を入力します。
-
バリアントを右クリックし、Insertをクリックして、Queryをクリックします。
-
Variant DetailsセクションのQueryフィールドにクエリを入力します。
レンダリングのデータ ソース フィールドでクエリを使用する
レンダリングのデータ ソース フィールドでクエリを使用する
レンダリングのデータソースフィールドでクエリを使用するには:
-
編集するレンダリングをクリックし、フローティング ツールバーでEdit component propertiesをクリックします。
-
Control Propertiesダイアログ ボックスのGeneralセクションのData Sourceフィールドにクエリを入力します。

