推奨事項: SXAの拡張
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
たとえば、SXAツールボックスに独自のカスタム レンダリングを追加したり、テーマやテンプレートを追加したりするために、SXAを拡張することができます。このトピックでは、SXAを拡張するためのいくつかの要件と推奨事項について説明します。
SXAが制御するツリーのブランチにカスタム アイテムを配置しないでください
SXAを拡張するときは、カスタム アイテムをどこに保存するかを考えてください。SXAは、SXAの更新中に標準のSXAセクションを上書きします。そのため、SXAによって制御されるツリーの枝にカスタム アイテムを配置すると、アップグレード後にインスタンスが壊れる可能性があります。次のことをお勧めします。
-
カスタムモジュールは、Experience Acceleratorモジュールルートの兄弟であるブランチに配置します。
-
テンプレートは、Experience Acceleratorフォルダの兄弟であるフォルダに配置し、決して内部に配置しないでください。
-
同様に、レンダリング、ブランチ、メディアなど、他のすべての領域に対してモジュール固有のルートアイテムを作成する必要があります。
関連トピック:
OOTB SXAアイテムを変更しないでください
SXAを拡張するときは、カスタム機能に常にSXA拡張ポイントを使用します。たとえば 、カスタムデータテンプレートを作成します。これが不可能で、延長の正当な理由がある場合は、SXAチームに連絡して拡張ポイントを作成してください。
関連トピック:
SXA MVCレイアウトを置き換えないでください
SXA MVCレイアウトは、グリッド、テーマ、メタ コンポーネントの基礎であり、SXAは他の一般的な動作のためにその存在に依存することができます。レイアウトをカスタム実装に置き換えると、SXAの将来のバージョンとの互換性が失われるリスクがあります。
カスタムの非ビジュアル要素をレイアウトに追加する必要がある場合は、メタレンダリングを作成して メタパーシャルデザインに追加することを検討してください。ビジュアル要素がある場合は、標準のSXAレンダリングの使用を検討してください。
SXAには、レイアウトを拡張するための複数の可能性が用意されています。たとえば、次のことができます。
カスタム レンダリング用のSXAモジュールを作成する
カスタム レンダリングをSXAモジュール に配置して、既存のサイトに追加したり、新しく作成したサイトですぐに使用したりできます。
しなきゃいけません:
-
モジュールの サイト/テナント スキャフォールディング統合 を提供します。
-
コンポーネントのデータ ソース定義を含めます (またはOOTB SXAデータ ソースを再利用します)。
-
データソースのサイト相対クエリを定義します。
関連トピック:
ソリューションに機能を追加する際のHelixの原則に従う
Helixは、Sitecore開発に関する一連の公式ガイドラインと推奨プラクティスを提供しています。SXAは、Sitecore実装のビルド、テスト、拡張、および保守に関する開発プロセスの推奨事項を含むSitecore Helixの原則に従います。
次のことをお勧めします。
-
SXA機能モジュールには依存関係を追加せず、基盤モジュールにのみ依存関係を追加してください。レンダリングのクローン作成中にルールに違反することは、プラットフォーム コードを使用して新機能を提供するため、許可されます。この推奨事項はOOTB SXAレンダリングに適用され、必ずしもSXA Storefrontレンダリングに適用されるわけではありません。
-
機能を適切なHelixモジュールに分離して分割します。
-
モジュールの サイト/テナント スキャフォールディング統合 を提供します。
関連トピック:
ページのカスタムテンプレートは、ページテンプレートに基づいて作成します
ページを表すカスタムテンプレートを作成する場合は、Pageテンプレートを基本テンプレートとして選択する必要があります。そうしないと、特定の機能が動作しない可能性があります。
アイテムID: Page:{3F8A6A5D-7B1A-4566-8CD4-0A50F3030BD8}。
アイテムパス: sitecore/Templates/Foundation/Experience Accelerator/Multisite/Content/Page。
新しいレンダリングを作成する前に、既存のレンダリングの使用を検討してください
フローチャートを確認して、カスタムコンポーネントを作成する必要があるかどうかを判断してください。
レンダリング バリアントとコンポジットを使用して、既存のSXAレンダリングをカスタマイズできます。可能であれば、カスタム レンダリングを作成する前に、バリアントとコンポジットの使用を常に検討してください。
たとえば、レンダリングバリアントを使用すると、参照アイテム を使用してフィールドを表示したり、トークン付きのクエリアイテム を使用してコンテキストアイテムをレンダリングしたりできます。
関連トピック:
新しいレンダリングを作成する前に、既存のレンダリングのクローンを作成することを検討してください
レンダリング バリアントを使用して可能な範囲を超えてHTMLをカスタマイズする場合は、SXAレンダリングを簡単にクローン できます。その過程で、データソースとレンダリングパラメータに追加することもできます。可能であれば、SXA OOTBコンポーネントで実現できる機能のカスタム レンダリングを構築する前に、常にこのアプローチを検討してください。
アイテムにリンクするフィールドの範囲を制限する
クエリをサポートするフィールドの場合、編集者が選択できるアイテムの範囲を制限する必要があります。
たとえば、次のようにします。
-
query:$siteMedia – ファイルまたは画像フィールドの場合。
-
query:$home – ページにリンクするフィールドの場合。
-
query:$site – サイト内の任意のアイテムにリンクできるフィールドの場合。
SXAパイプラインの説明には、トークンの完全なリストとトークンの拡張方法が含まれています。