デフォルト、コンパクト、またはユーザーアカウントを使用するときに、user.html.twigとは異なるテンプレートを作成して、別の表示モードにする方法はありますか
User--compact.html.twigのようなもの?
これを行うには、テーマ内にテーマ提案の変更フックを作成します。
_/**
* Implements hook_theme_suggestions_user_alter().
*
* An array of alternate, more specific names for template files or theme
* functions.
*/
function MYTHEME_theme_suggestions_user_alter(&$suggestions, $vars, $hook) {
// Define the view mode.
$mode = $vars['elements']['#view_mode'];
// Create a theme hook suggestion which has the view mode name in it.
$suggestions[] = 'user__' . $mode;
}
_
注:_$vars['elements']['#view_mode'];
_は、ユーザーのビューモード配列を表示するために、この関数の下でkint($vars)
を使用して派生したものです。
このコードをテーマの.themeファイルに追加して、キャッシュをクリアできます。キャッシュをクリアすると、Twig debug内に新しいテーマの提案が表示されます。
私の場合、「完全表示モードなので、_user--full.html.twig
_が表示されるのはそのためです。ユーザーをコンパクトモードで表示している場合は、_user--compact.html.twig
_の提案が表示されます。