Como obter o nome do tipo de conteúdo legível por humanos em um modelo de nó

14

Eu criei um modelo de nó para o meu nó e está funcionando bem.

Preciso imprimir o nome do tipo de conteúdo, que é como "White Paper" e tem o nome da máquina "w1" no meu modelo de nó. Se eu usar variável {{ node.bundle }}, está imprimindo o nome da máquina. Mas preciso do nome legível por humanos .

Eu tentei muitos elementos de nó, conteúdo e variáveis ​​de página, mas não consigo imprimir o nome do tipo de conteúdo legível por humanos.

Alguém pode ajudar?

Dev
fonte

Respostas:

22

Você deve conseguir o nome legível por humanos do tipo de conteúdo (ou o "rótulo") usando o seguinte trecho no modelo Twig do nó.

{{ node.type.entity.label }} 
edwardchiapet
fonte
2
sim, esta é a solução mais fácil, não cruzou a minha mente para usar este campo referenciando o tipo de nó
4k4
2
Eu tentei, {{}} node.label que estava retornando nome da máquina em vez disso, {{}} node.type.entity.label cumprido o meu propósito, graças :)
Dev
4

Você pode adicionar o nome legível por humanos do tipo de conteúdo em um gancho de pré-processo:

mytheme.theme

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

e use-o no modelo de nó:

{{ content_type }}
4k4
fonte
1
Apenas para o registro node_type_load está obsoleto, você deve usar NodeType :: load ().
Insasse