web-dev-qa-db-ja.com

分類用語のノードリストページで別のノードテンプレートを使用するにはどうすればよいですか?

次のような分類用語ページのノードリストの場合

分類/用語/ 4

それは現在、あなたがノードを見ているときのために私が設定したノードテンプレートを使用しています:

node--spot.tpl.php

このコードをhook_preprocess_nodeに追加しました:

if(arg(0) == 'taxonomy') {
  array_Push($vars['theme_hook_suggestions'], 'node_taxonomy');
}

使用したいノードテンプレートファイル名は次のとおりです。

node-taxonomy.tpl.php

フックが実行されていることを確認しましたが、まだ使用しています:

node--spot.tpl.php

何が悪いのですか?

pdate 1:ソースコードによると、theme_hook_suggestionsは逆の優先順位でリストされているため、array_unshiftをarray_Pushに変更しました。

pdate 2:私のテンプレートを最初に使用する必要があることが、Devel themerで正しく表示されていません。

node_taxonomy <node _14 <node_ spot <sites/all/themes/hotness/templates/node--spot.tpl.php

2
Justin

この回答には2つの部分があります。

  1. 私のアップデート#1で詳しく説明されているように、提案は、theme_hook_suggestions配列の最後に置く必要があります。

  2. テンプレートファイルには、1つではなく2つのダッシュを付ける必要があります。

ファイルシステム:

node--taxonomy.tpl.php

Theme_hook_suggestions配列に追加されたとおり:

node__taxonomy

6
Justin