Drupal 7 Template Suggestionsで報告されているように、ページに対してDrupal 7からデフォルトで使用されるテンプレートの提案は、page-[front | internal / path] .tpl.phpです。
http://www.example.com/node/1/editに表示されるページの場合、Drupalは次のテンプレートファイルを探します。
- page--node--edit.tpl.php
- page--node--1.tpl.php
- ページ--node.tpl.php
- page.tpl.php
追加の提案を追加するには、テーマでtemplate_preprocess_page()を実装し、新しい提案を追加する必要があります$variables['theme_hook_suggestions']
($variables
関数への参照によって渡される変数です)。
その場合、提案されたテンプレートファイルが使用されない唯一の理由は、ファイルの名前が正しくないためです。たとえば、ページに本のページが表示されている場合、テンプレートファイルはpage-book.tplである必要があります.php。テーマのコードを変更し、page-book.tpl.phpのようなテンプレートが見つからない場合は、page--node-type.tpl.phpテンプレートを使用することができます。
また、theme_get_suggestions()(template_preprocess_page()によって呼び出される関数)では、ハイフンがに置き換えられ_
、その逆はないことに注意してください。実行される理由は、機能コードで報告されるコメントで説明されています。
// When we discover templates in drupal_find_theme_templates(),
// hyphens (-) are converted to underscores (_) before the theme hook
// is registered. We do this because the hyphens used for delimiters
// in hook suggestions cannot be used in the function names of the
// associated preprocess functions. Any page templates designed to be used
// on paths that contain a hyphen are also registered with these hyphens
// converted to underscores so here we must convert any hyphens in path
// arguments to underscores here before fetching theme hook suggestions
// to ensure the templates are appropriately recognized.
$arg = str_replace(array("/", "\\", "\0", '-'), array('', '', '', '_'), $arg);