---
title: "推奨事項:SXAの延長"
slug: "recommendations--extending-sxa"
abstract: "SXA延長の推奨事項。"
---
# 推奨事項:SXAの延長

例えば、[SXAを拡張](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/extending-sxa.html)して、SXAツールボックスやテンプレートに自分だけのカスタムレンダリングを追加したいかもしれません。このトピックでは、SXAの拡張に関するいくつかの要件と推奨事項について説明します。

## SXAが管理するツリーの枝にはカスタムアイテムを入れないでください

SXAを延長する際は、カスタムアイテムをどこに保管するかを考えてください。SXAはSXAの更新時に標準のSXAセクションを上書きします。そのため、SXAが制御するツリーブランチにカスタムアイテムを配置すると、アップグレード後にインスタンスが壊れる可能性があります。以下をお勧めします:

-   [カスタムモジュール](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/create-a-new-sxa-module.html)を*Headless Experience Accelerator*モジュールの根の兄弟ブランチに配置します。
    
    ![headless-site-new-module.png](https://doc.sitecore.com/api/markdown-image/sai/ja/developers/sitecoreai/images/headless-site-new-module.png)
    
-   [テンプレート](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/add-and-extend-an-sxa-template.html)は*Experience Accelerator*フォルダーの兄弟フォルダに入れて、絶対に内側には置かないでください。
    
-   同様に、レンダリング、ブランチ、メディアなど他のすべての領域に対してモジュール固有のルートアイテムを作成する必要があります。
    

関連トピック:

-   [SXAテンプレートを追加・拡張する](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/add-and-extend-an-sxa-template.html)
-   [新しいSXAモジュールを作成する](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/create-a-new-sxa-module.html)

## OOTB SXA項目を改変しないでください

SXAを拡張する際は、カスタム機能のために必ずSXA拡張ポイントを使用してください。例えば、[カスタムデータテンプレートを作成する](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/add-and-extend-an-sxa-template.html)と良いでしょう。それが不可能で延長の正当な理由がある場合は、SXAチームに連絡して延長ポイントを作成してもらいましょう。

関連トピック:

-   [SXAの拡張](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/extending-sxa.html)
-   [SXAテンプレートを追加・拡張する](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/add-and-extend-an-sxa-template.html)

## カスタムレンダリング用のSXAモジュールを作成しましょう

カスタムレンダリングをSXA[モジュール](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/create-a-new-sxa-module.html) に配置し、既存のサイトに追加したり、新たに作成したサイトで即座に利用したりできます。

あなたは以下のことをしなければなりません:

-   モジュール用に [サイト/サイト収集スキャフォールディングの統合](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/add-modules-to-site-and-site-collection-scaffolding.html) を提供します。
-   コンポーネントのデータソース定義を含めるか(またはOOTB SXAデータソースを再利用してください)。
-   データソースに対してサイト相対クエリを定義してください。

関連トピック:

-   [SXAの拡張](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/extending-sxa.html)
-   [SXAテンプレートを追加・拡張する](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/add-and-extend-an-sxa-template.html)
-   [新しいSXAモジュールを作成する](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/create-a-new-sxa-module.html)

## ページのカスタムテンプレートはPageテンプレートを基にしてください

ページを表すカスタムテンプレートを作成する際は、*Page*テンプレートをベーステンプレートとして選択する必要があります。そうでなければ、特定の機能が動作しないことがあります。

項目ID: *Page*:{3F8A6A5D-7B1A-4566-8CD4-0A50F3030BD8}。

アイテムパス: *sitecore/Templates/Foundation/Experience Accelerator/Multisite/Content/Page*。

## 新しいレンダリングを作る前に既存のレンダリングを使うことを検討してください

フロー [チャート](https://doc.sitecore.com/sai/ja/developers/sitecoreai/content-modeling-and-presentation/sitecoreai-for-developers/content-editor-items/components/flowchart-to-determine-whether-to-create-a-custom-component.html "Flowchart to determine whether to create a custom component") を見て、カスタムコンポーネントを作成するかどうか判断してください。

既存のSXAレンダリングはレンダリングバリアントを使ってカスタマイズできます。可能であれば、カスタムレンダリングを作成する前に必ずバリアントの使用を検討してください。

関連トピック:

-   [レンダリングバリアントを作成する](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/create-a-rendering-variant.html)

## 項目にリンクするフィールドの範囲を制限する

クエリをサポートするフィールドについては、編集者が選択できる項目の範囲を制限する必要があります。

例えば、以下を使います:

-   query:$siteMedia – ファイルフィールドや画像フィールドのために。
-   query:$home – ページへのリンクフィールドに対して。
-   query:$site – サイト内の任意の項目にリンクできるフィールド。

[SXAパイプライン](https://doc.sitecore.com/xp/en/developers/sxa/104/sitecore-experience-accelerator/the-sxa-pipelines.html)の説明には、トークンの完全なリストとその拡張方法が含まれています。