如何在节点模板中获取人类可读的内容类型名称


14

我已经为节点创建了节点模板,并且其工作正常。

我需要打印内容类型名称,类似于“白皮书”,并且在节点模板中具有计算机名称“ w1”。如果我使用variable {{ node.bundle }},则其打印机器名称。但是我需要一个易读的名字

我尝试了节点,内容和页面变量的许多元素,但无法打印人类可读的内容类型名称。

有人可以帮忙吗?

Answers:


23

通过使用节点Twig模板中的以下代码片段,您应该能够获得内容类型的人类可读名称(或“标签”)。

{{ node.type.entity.label }} 

2
是的,这是最简单的解决方案,我没想到要使用此字段来引用节点类型
4k4

2
我尝试了{{node.label}},它返回了计算机名称,{{node.type.entity.label}}实现了我的目的,谢谢:)
Dev

4

您可以在预处理钩子中添加内容类型的可读名称:

神话主题

/**
 * 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,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.