クエリを使ってデータソースのコンテキストを特定します
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
部分的なデザインやスニペットを作成する場合、レンダリングを特定のデータソースに向けるのが便利です。例えば、3つの異なるサイトで部分的なデザインを使い、その部分的なデザインのレンダリングにサイトのコンテキストを適用したい場合です。レンダリングのデータソースを手動で変更することでこれが可能ですが、クエリを使うこともできます。
例えば、共有サイトではHeaderという部分的なデザインを使い、画像レンダリングを含みます。画像のデータソースフィールドでクエリ- query:$site/Data/Images/Logo -を使い、この部分的なデザインが他のサイトで使われると、画像レンダリングは現在のサイトで画像データソースを解決しようとします。
現在のコンテキスト項目に対して実行するクエリを指定するには、子項目を含むレンダリングバリアントを作成することができますquery: これにより、$homeや $siteなどのSXAトークンを利用できます。例えば、特定のテンプレートの子項目だけに表示したい場合などです。クエリはqueryで始め、標準Sitecoreクエリ構文を使う必要があります。
以下の表はクエリ構文の例を示しています:
例
クエリ
現在のページの子どもたち
query:.//*
現在のサイトのホームアイテム
query:$home
現在のページの親項目
query:..
現在のページの親項目の親項目の親
query:../..
サイトホームページのすべての項目
query:$home//*
サイトホームページ内のすべての項目に追加のソートが適用されています
query:$home//*@@name='News'
現在の項目の下にあるページテンプレートのすべての項目
query:.//*@@templatename='Page'
現在のサイトのホームアイテムにあるページテンプレートのすべての項目
query:$site/*@@name='Home'//*@@templatename='Page'
レンダリングバリアントにクエリ子アイテムを追加する
クエリを使って、クエリ子項目をレンダリングバリアントに追加したり、レンダリングのデータソースにクエリを追加したりすることでコンテキストを切り替えることができます。
クエリ子項目をレンダリングバリアントに追加するには:
-
コンテンツエディターでサイトをクリックし、「プレゼンテーション/レンダリングバリアント」フォルダを開きます。このフォルダにはバリアントを許可するすべてのレンダリングが一覧化されています。
-
バリアントを追加したいレンダリングを右クリックし、その後「 挿入」→ 「バリアント定義」をクリックします。
-
名前とバリアントの詳細を入力してください。
-
バリアントを右クリックし、「 挿入」をクリックし、「 クエリ」をクリックします。
-
Variant DetailsセクションのQueryフィールドでクエリを入力します。

レンダリングのデータソースフィールドにクエリを入力してください
レンダリングのデータソースフィールドでクエリを使うには:
-
編集したいレンダリング画像をクリックし、フローティングツールバーで 「コンポーネントプロパティの編集」をクリックします。
-
コントロールプロパティダイアログボックスの**「一般**」セクション、データソースフィールドでクエリを入力します。
