プレフィックスを使用してデータソースのコンテキストを設定する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
ほとんどのSXAレンダリングは、再利用性を考慮して設計されており、データ ソース アイテムからデータを取得します。つまり、表示されるコンテンツは、表示されるページにバインドされず、データ ソース アイテムに格納されます。コンポーネントデータソースは、そのコンポーネントのコンテンツの取得元を定義するためにコンポーネントに設定するアイテムです。
SXAには、データ ソースをコンポーネントに割り当てる方法がいくつか用意されています。 クエリを使用してデータ ソース コンテキストを決定したり、ソース フィールド レポートを実行して データ ソース コンテキストを設定したりできますが、プレフィックスを使用してデータ ソース コンテキストを決定することもできます。
フィールドからデータソースを取得する
コンポーネントデータソースをフィールドからプルするには:
-
次のプレフィックスを使用します。
接頭辞
field:<field name>
例
field:Title
コンテキスト アイテムのフィールド名をデータ ソースとして使用する場合、SXAは次のことを行います。
-
フィールド タイプがリンク フィールドの場合、SXAはターゲット アイテムIDをデータ ソースとして使用します。
-
フィールド タイプがリンク フィールドではなく、フィールド値が空でない場合、SXAはフィールドの未加工の値をデータ ソースとして使用します。
これは、たとえば、パーシャル デザインを使用する製品詳細ページがあり、パーシャル デザインのコンポーネントで製品アイテム フィールド自体からコンテンツを選択する場合に便利です。
ページに対するデータソースの指定
項目のフルパスを指定する代わりに、特別な表記を使用して、そのパスをコンテキスト項目に対して相対的にすることができます。SXAは、ページがレンダリングされるときに、相対パスを完全なアイテム パスに変換します。
これは、再利用可能なページ要素、たとえばパーシャル デザインで、データをグローバルな場所から取得するのではなく、各ページの下に保存したい場合に便利です。
ページに対する相対的なデータソースを指定するには、pageプレフィックスとlocalプレフィックスを使用します。
|
接頭辞 |
page:<relativepath> local:<relativepath> |
|
例 |
page:/blog1 local:/data/text1 ダッシュ付きのアイテムには、ハッシュタグを使用します。例えば: page:/#my-test-blog# |
SXAは、ページ データ フォルダー内のページの下に保存されるコンポーネントにpage: 表記を使用します。多くの場合、page: 表記とlocal: 表記は同じ結果になります。パーシャル デザインで使用すると、local: 表記ではそのパーシャル デザインの下からアイテムが取得されますが、page: では、SXAは常にページの下のデータ ソースを検索するように強制されます。
コードを使用してデータ ソースを解決する
コードを使用してデータソースを解決するには:
-
Sitecore.Buckets.FieldTypes.IDataSource.このインターフェイスには、ListQueryという名前の1つのメソッドが含まれています。
Item ListQuery(Sitecore.Data.Items.Item item)
-
コードを適用するには、次のプレフィックスを使用します。
接頭辞
code:<full class name>
例
code:SXA.POC.DataSources.CodeDataSource,SXA.POC
このメソッドを使用すると、データ ソースに使用する項目の配列を取得できます。Sitecoreに渡されるアイテムは、コードが返すアイテムになります。これを使用してコンポーネントのデータソースを設定している場合、これがそのContext.Itemになります。コードはresolveRenderingDatasourceパイプライン プロセッサで呼び出されます。
これは、たとえば、時刻やその他のビジネス固有の基準に基づいて、さまざまなアイテムを返品する場合に便利です。
コンテンツ検索でデータソースを取得する
コンテンツ検索クエリを使用して、Sitecoreアイテムを取得します。コンポーネントが取得する項目を制限するには、検索クエリの絞り込み条件を指定します。
これは、SXA動的クエリ トークンを使用する場合や、ファセットの1つに基づいてデータ ソース アイテムを選択する場合に便利です。
|
接頭辞 |
Sitecore content search query |
|
例 |
template:{57bcf1ce-35cb-4752-b23b-2d4522af6292};location:{85C181E3-3C5C-4591-9634-F7A90AFDCAA0} |
Sitecoreクエリでデータ ソースを取得する
Sitecoreクエリを使用してSitecoreアイテムを取得できます。フィルタリングを含む標準のSitecoreクエリ表記を使用できます。
これは、アイテムツリーの場所に基づいてデータソースにアイテムを動的に入力する場合に便利です。