Как получить удобочитаемое имя типа контента в шаблоне узла


14

Я создал шаблон узла для своего узла, и он работает нормально.

Мне нужно напечатать имя типа содержимого, которое похоже на «Whitepaper» и имеет имя машины «w1» в моем шаблоне узла. Если я использую переменную {{ node.bundle }}, ее печать имя машины. Но мне нужно удобочитаемое имя .

Я перепробовал множество элементов переменных узла, содержимого и страницы, но не смог напечатать удобочитаемое имя типа содержимого.

Кто-нибудь может помочь?

Ответы:


22

Вы должны быть в состоянии получить удобочитаемое имя типа содержимого (или «метки»), используя следующий фрагмент в шаблоне Twig вашего узла.

{{ node.type.entity.label }} 

2
да, это самое простое решение, не
приходило

2
Я попытался, {{node.label}}, который вместо этого возвращал имя машины, {{node.type.entity.label}} выполнил мою цель, спасибо :)
Дев

4

Вы можете добавить удобочитаемое имя типа контента в обработчике препроцесса:

mytheme.theme

/**
 * Implements hook_preprocess_node().
 */
function mytheme_preprocess_node(array &$variables) {
  $node = $variables['node'];
  $variables['content_type'] = node_type_load($node->bundle())->label();
}

и использовать его в шаблоне узла:

{{ content_type }}

1
Просто для записи node_type_load не рекомендуется использовать вместо этого NodeType :: load ().
Insasse
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.