Please Sign In or Register

テンプレートファイルの命名規則

テンプレートファイルは、そのファイル名から読み取られる条件が詳細なものから順に探され、ない場合にはデフォルトのテンプレートが使用される仕組みになっています。
この機能を利用することで、コンテンツタイプやカテゴリなどに応じた複数のテンプレートを使い分けることができます。

page.tpl.php

表示されるページによるテンプレートファイルの名称の一例は以下の通りです。

page-[type].tpl.php (コンテンツタイプ別のテンプレート)

  • page-blog.tpl.php --- ブログエントリ
  • page-book.tpl.php --- ブックページ

page-[arg(0)]-[arg(1)]-[・・・].tpl.php (URL から判断できるテンプレート)

  • page-front.tpl.php --- フロントページ : http://example.com
  • page-admin.tpl.php --- 管理セクション : http://example.com/admin/*
  • page-tracker.tpl.php --- Tracker モジュールで提供されるページ : http://example.com/tracker
  • page-node-edit.tpl.php --- コンテンツの編集ページ : http://example.com/node/*/edit
  • page-node-1.tpl.php --- コンテンツの ID が "1" のページ : http://example.com/node/1
  • page-taxonomy-term-1.tpl.php --- カテゴリの ID が "1" のページ : http://example.com/taxonomy/term/1

また、http://www.example.com/node/1/edit という URL で表示されるページに適用されるテンプレートは優先順の高いものから順に、以下のようになります。

  1. page-node-edit.tpl.php
  2. page-node-1.tpl.php
  3. page-node.tpl.php
  4. page.tpl.php

node.tpl.php

表示されるノードに対応するテンプレートファイルの名称の一例は以下の通りです。

node-[type].tpl.php (コンテンツタイプ別のテンプレート)

  • node-story.tpl.php --- ストーリー
  • node-page.tpl.php --- ページ
  • node-blog.tpl.php --- ブログエントリ
  • node-book.tpl.php --- ブックページ
  • node-forum.tpl.php --- フォーラム

node-admin.tpl.php などは利用できないようです。

block.tpl.php

表示されるブロックに対応するテンプレートファイルの名称の一例は以下の通りです。

block-[module]-[delta].tpl.php (モジュールとブロック番号で区分されるテンプレート)

  • block-user-0.tpl.php --- User モジュールが提供するブロックで、delta が "0" のブロック

delta は一般的には "0" が使用されることが多いようですが、複数のブロックを提供するモジュールなどでは、そのブロック数に応じた番号が設定されているようです。

block-[module].tpl.php (モジュール別テンプレート)

  • block-user.tpl.php --- User モジュールが提供するブロック

block-[region].tpl.php (ブロックの表示領域別テンプレート)

  • block-left.tpl.php --- 左サイドバーに表示されるブロック
  • block-right.tpl.php --- 右サイドバーに表示されるブロック

テンプレートファイル命名規則のカスタマイズ

_phptemplate_variables() 関数に命名規則を追加することで、URL エイリアスを使ったテンプレートファイル名などを使用することもできるようです。

詳細については、Different page templates depending on URL aliases または Different node templates depending on URL aliases などで確認できます。

トラックバック

トラックバックは承認後に表示されます。

URLから "-nospam" を削除してトラックバックを送信してください。