テンプレートコードはコンテンツタイプに応じて異なりますが、フィールドとして同じ段落を使用する2つのコンテンツタイプがあります。コンテンツタイプに応じて、段落テンプレートに異なるテンプレート名を付けるにはどうすればよいですか。
現在の命名規則:paragraph--paragraph-type.html.twig
望ましい命名規則:paragraph--parent-content-type--paragraph-type.html.twig
別の解決策は、URLを取得してテンプレートで変数として渡し、渡されたURLに従ってテンプレートコードを使用することです。
テーマ名の提案を追加します。
mytheme.theme:
/**
* Implements hook_theme_suggestions_HOOK_alter().
*/
function mytheme_theme_suggestions_paragraph_alter(&$suggestions, $variables) {
$paragraph = $variables['elements']['#paragraph'];
$parent = $paragraph->getParentEntity();
if ($parent) {
$suggestions[] = 'paragraph__' . $parent->bundle() . '__' . $paragraph->bundle();
}
}
ノードタイプごとに異なる表示モードを使用します。構造>段落タイプで、ノードタイプの必要に応じて、段落にさまざまなビューモードを追加します。構造>コンテンツタイプで、ノードの段落フィールドの表示モードを「レンダリングされたエンティティ」に変更し、歯車を使用して、以前に作成した対応するビューモードを選択します。次に、paragraph--paragraph-type--viewmode-name.html.twigのようなテンプレートファイルを作成します。