web-dev-qa-db-ja.com

特定のノードIDのテンプレートファイルを定義するにはどうすればよいですか?

ノードIDを使用して、特定のノードのカスタムテンプレートファイルを定義しようとしています。テンプレートフォルダーにnode--X.tpl.phpファイルを作成するように言っている多くのトピックを読みました。

それが私がしたことです。残念ながら、テーマキャッシュを何度もフラッシュした後でも、何も変わりません。

他に何かしなければならないことはありますか?

Drupal 7.を使用しています。

7
Ludovic

テンプレートファイルpage-node-{nid}.tpl.phpテーマディレクトリ内。これも機能します。

node-{nodeid}.tpl.php you これを使って。

0
Lav Rai

Drupal 7では、node-[node-id] .tpl.phpはノードのテンプレートファイルとして使用され、node-[node-type] .tpl.phpも使用されません。 Cliveがコメントで書いたように、テーマで使用するテンプレートファイルを含むディレクトリにnode.tpl.phpも必要です。

Node-[node-id] .tpl.phpとpage--node-[node-id] .tplの間に違いがあることに注意してください。後者は、node/[node-id] /のページにも使用されます編集、またはnode/[node-nid]/delete。 theme_get_suggestions() の最初のコメントを参照してください。

推奨されるテーマフックまたはボディクラスのリストを、具体的な順序で作成します。現在のパスのすべての要素に対して1つの提案が行われますが、数値要素は後続の提案に引き継がれません。たとえば、$base = 'page'http://www.example.com/node/1/edit を実行すると、次の提案と本文クラスが生成されます。

 page__node page-node 
 page__node __%page-node-%
 page__node__1 page-node-1 
 page__node__edit page-node-edit 
10
kiamlaluno

オーバーライドに使用する適切な名前を知る簡単な方法は、drushです。

コマンドラインを開き、drupalのsites/defaultに移動して、次の行を入力します。

drush vset theme_debug 1

drush vset theme_debug 0 ..を削除するには.

その後、ノードをリロードして、そのコードソースを確認します。あなたはあなたのページ(ブロック、リージョン、html.tpl.php、page.tpl.php ....)のすべてについて可能なすべてのdrupalの命題を見るでしょう。

0
moeb