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

14

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

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

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

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

Dev
источник

Ответы:

22

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

{{ node.type.entity.label }} 
edwardchiapet
источник
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 }}
4k4
источник
1
Просто для записи node_type_load не рекомендуется использовать вместо этого NodeType :: load ().
Insasse