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 11

Март 13, 2025 г.

Если не хочется объявлять дополнительный регион, чтобы настроить вывод блока через админку, то можно сделать рендер блока программно. Например добавим в препроцессинг страницы переменную с рендером блока branding. Этот блок предоставляется модулем ...

Читать

Добавление произвольных требований при установке модуля в Drupal

Май 7, 2025 г.

Иногда модуль в Drupal требует наличия специфических сущностей или конфигураций, например — определённого текстового формата. Поскольку текстовые форматы являются конфигурационными сущностями (entities), напрямую указать их как зависимость в .info.yml ...

Читать

Rutube: интегрируем как oembed provider source в Drupal

Февраль 28, 2025 г.

Задача - добавить rutube как oembed провайдера в медиа библиотеку, чтобы можно было создать медиа тип Rutube, где будет поле для ввода ссылки. Медиа поля ...

Читать

Инициализируем кастомную тему в Drupal

Май 12, 2025 г.

При создании новой темы у вас есть варианты выбора начиная с того, чтобы взять готовую тему (и начать её менять под ваши задачи) до создания новой темы ...

Читать
 

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

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



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