Drupal: шаблоны для taxonomy_term и view mode — как добавить?

При работе с таксономией в Drupal нередко возникает потребность отображать термины по-разному в зависимости от контекста. Например, один и тот же термин в режиме teaser должен выводиться компактно, а в режиме full — с подробным описанием.

Если вы используете разные view mode для терминов таксономии, вполне логично захотеть разные Twig-шаблоны для каждого режима. Но есть нюанс: в отличие от сущностей node, по умолчанию Drupal не предоставляет template suggestions для taxonomy_term в зависимости от view mode.

Что Drupal делает по умолчанию

Когда Drupal рендерит термин таксономии, он ищет Twig-шаблон по следующим приоритетам:

  • taxonomy-term--[vocabulary].html.twig — шаблон для словаря, например tags;
  • taxonomy-term.html.twig — общий шаблон термина.

Однако, если термин отображается в режиме teaser, full, compact и т.п. — это никак не влияет на шаблон, потому что suggestions для view mode не генерируются автоматически.

Как добавить template suggestions для view mode вручную

Чтобы шаблоны могли различаться в зависимости от view mode, добавим нужные подсказки в файл вашей темы (.theme) через hook_theme_suggestions_taxonomy_term_alter():

После этого Drupal начнёт искать шаблоны:

  • taxonomy-term--teaser.html.twig
  • taxonomy-term--tags--teaser.html.twig

в зависимости от view mode и словаря.

Как это использовать

Допустим, вы хотите, чтобы термин из словаря topics в режиме teaser отображался особым образом. Создайте шаблон:

Затем добавьте в него нужную разметку и логику. Например:

На чаще всего копируют базовый шаблон и меняют его.

Нюансы

  • Требуется очистка кэша после добавления хука: drush cr или через интерфейс.
  • Используйте двойное тире (--) в именах шаблонов, а не подчеркивания.

Хотя Drupal не предлагает template suggestions по view mode для taxonomy_term из коробки, их можно легко добавить самостоятельно. Это делает темизацию терминов намного гибче и позволяет использовать все преимущества view mode, как у node.

Мало букафф? Читайте есчо !

Добавить произвольную ссылку в меню на этапе препросессинга в Drupal

Март 17, 2025 г.

Иногда бывает потребность создать ссылку из кода. Структура ссылки довольно сложная на этапе препроцессинга шаблона меню, делюсь сниппетом кода. Потребуются следующие зависимости: [crayon-6a71c7d196924768173812/] Добавим ссылку в меню main. ...

Читать

Проброс переменных из PHP в JS (в Drupal) с использованием js_settings_alter

Ноябрь 14, 2025 г.

В этой статье мы рассмотрим, как пробросить данные из PHP в JavaScript в Drupal 11 с использованием js_settings_alter(). Этот метод позволяет изменять или добавлять переменные в объект drupalSettings, который доступен в JavaScript на всех страницах. ...

Читать

Использование модального диалога в Drupal

Январь 13, 2026 г.

В комплекте Drupal включает в себя jquery dialog, который можно подключить и использовать для ваших целей на фронт-енд. Эта статья о том, как это быстро сделать и начать собственно использовать в своей теме оформления. Типичная тема представляет ...

Читать

Twig-функция qr_code() в Drupal: простой плагин с использованием Endroid QR Code

Октябрь 23, 2025 г.

Иногда в шаблоне Drupal удобно вывести QR-код прямо по месту — без внешних файлов, без рендеринга через отдельный контроллер и без подключения сторонних ...

Читать
 

Комментарии к «Drupal: шаблоны для taxonomy_term и view mode — как добавить?»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: