ノードテンプレートで人間が読めるコンテンツタイプ名を取得する方法


14

ノード用のノードテンプレートを作成しましたが、正常に機能しています。

「ホワイトペーパー」のようなコンテンツタイプ名を印刷する必要があり、ノードテンプレートにマシン名「w1」があります。variableを使用する{{ node.bundle }}と、マシン名が出力されます。しかし、私は人間が読める名前が必要です。

ノード、コンテンツ、ページ変数の多くの要素を試しましたが、人間が読めるコンテンツタイプ名を印刷することはできません。

誰でも助けることができますか?

回答:


21

ノードTwigテンプレートで次のスニペットを使用して、人間が読めるコンテンツタイプの名前(または「ラベル」)を取得できるはずです。

{{ node.type.entity.label }} 

2
はい、これは最も簡単な解決策です。ノードタイプを参照するこのフィールドを使用することを思いもしませんでした
-4k4

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()を使用する必要があります。
インセ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.