コンポーネント内で動的プレースホルダーを使う
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
動的なプレースホルダーを使って、ページ上の各コンポーネントごとにユニークなプレースホルダーキーを作成できます。場合によっては、例えばColumn Splitterコンポーネントに列を追加する場合など、単一のコンポーネント内で複数のプレースホルダーキーが生成されることもあります。
このウォークスルーでは、動的プレースホルダーを使用するようにコンポーネントを設定する方法について説明します:
コンポーネントにIsRenderingsWithDynamicPlaceholdersプロパティを追加します
動的なプレースホルダーやその中のコンポーネントの解決を可能にするために、コンポーネントにIsRenderingsWithDynamicPlaceholdersプロパティを追加してください。
コンポーネントにIsRenderingsWithDynamicPlaceholdersプロパティを追加するには:
-
コンテンツツリーで /sitecore/Layout/Renderings/Feature/Headless Experience Acceleratorに移動し、興味のあるコンポーネントをクリックしてください。
-
Other propertiesフィールドでIsRenderingsWithDynamicPlaceholdersプロパティを入力し、その値をtrueに設定します。

-
変更を保存してください。
IDynamicPlaceholderベーステンプレートをレンダリングパラメータテンプレートに追加します
IDynamicPlaceholderベーステンプレートをコンポーネントのレンダリングパラメータテンプレートに追加すると、DynamicPlaceholderIDという新しいパラメータが付与されます。このパラメータは、プレースホルダーキーにIDを動的に割り当てます。
IDynamicPlaceholderベーステンプレートを追加するには:
-
コンテンツツリーでRendering Parametersフォルダに移動し、レンダリングパラメータテンプレートを選択します。
注記フォルダの場所はインスタンスによって異なる場合がありますが、通常は /sitecore/Templates/Featureで見つかります。
-
Contentタブで/Templates/Foundation/Experience Accelerator/Dynamic Placeholders/Rendering Parametersへ移動してください。
-
IDynamicPlaceholderアイテムをダブルクリックしてSelectedセクションに移動します。以下のスクリーンショットは、組み込みのContainerコンポーネントのレンダリングパラメータテンプレートを示しています。

ワイルドカードを使ってプレースホルダーキーを定義します
プレースホルダーキーの定義の一部としてワイルドカードを使います。その結果、コンポーネントのインスタンスがプレースホルダーに追加されるたびに、DynamicPlaceholderIDパラメータは一意なIDを生成し、プレースホルダーキー値で使われたワイルドカード(例えばmyrendering-1、myrendering-2、など)を動的に置き換えます。
プレースホルダーキーの定義:
-
コンテンツツリーで、動的プレースホルダーを有効にしたいコンポーネントのプレースホルダー設定項目に移動します。コンポーネントがどこに保管されているかによって、設定項目は以下のいずれかの場所にあるかもしれません。
-
/sitecore/Layout/Placeholder Settings/Feature.
-
/sitecore/Layout/Placeholder Settings/Project.
注記設定項目がまだ存在しない場合は、作成してコンポーネントの名前を付けてください。
-
-
設定項目をクリックし、Placeholder KeyフィールドでコンポーネントTSXファイルで定義されたコンポーネント名を入力し、その後に -{*}を入力します。例えばmyrendering-{*}。
-
変更を保存してください。
プレースホルダー設定の項目をコンポーネントにLinkしてください
プレースホルダー内のコンポーネントをレンダリングするには、レイアウトサービスを通じてプレースホルダー設定の項目をコンポーネントとリンクしてください。
プレースホルダー設定項目をコンポーネントにリンクするには:
-
コンテンツツリーでsitecore/Layout/Renderings/Featureに移動し、コンポーネントが入っているフォルダを開き、そのコンポーネントをクリックします。
-
Layout Service Placeholders欄で、以前設定したプレースホルダー設定項目に移動します。
-
プレースホルダー設定項目をダブルクリックしてSelectedペインに追加してください。

コンポーネントTSXファイルでプレースホルダーキーを定義します
コンポーネントTSXファイルでプレースホルダーコンポーネントを定義する際、Placeholder Keyフィールドの名前をphKey定数に渡す必要があります。ワイルドカードの代わりに、レンダリングパラメータの動的プレースホルダーIDを使う必要があります。
コード例: