Drupal8で「node.html.twig」をURLエイリアスごとに振り分ける際のメモ。
ノード用テンプレート「node.html.twig」でURLエイリアスに基づいて、テンプレートファイルの命名規則を追加します。
例えば「company」ページの場合「node-company.html.twig」といった命名規則になります。
1 2 3 4 5 6 7 8 |
function THEME_NAME_theme_suggestions_node_alter(array &$suggestions, array $variables) { if (\Drupal::routeMatch()->getParameter('node')) { $alias = \Drupal::request()->getPathInfo(); $alias = ltrim($alias, '/'); $alias = ($alias) ? $alias : 'front'; $suggestions[] = 'node__'.str_replace('/', '_', $alias); } } |
上記ではトップページの場合「node-front.html.twig」に、「company/about」ページの場合「node-company-about.html.twig」となるようにしています。