page.tpl.phpにハマる

2014.12.29

D7でサイトを作成していくと、page.tpl.phpのオーバーライドがどうも変。

Drupal 7 Template (Theme Hook) Suggestions

で見たら、page.tpl.phpから[type]がない・・・。

あれ? page.tpl.phpって、page--[front|internal/path].tpl.phpだけという仕様だったのか・・・。

page--[type].tpl.phpがないとテンプレートが増えてしまうのでなんとかしたかった。

 

数日悩んだ経過、Page–[node-type].tpl.php for Drupal 7というのを見つけた。

function themeName_preprocess_page(&$vars, $hook) {
if (isset($vars['node'])) {
// If the node type is "blog" the template suggestion will be "page--blog.tpl.php".
$vars['theme_hook_suggestions'][] = 'page__'. str_replace('_', '--', $vars['node']->type);
}
}
をtemplate.phpに貼付けるとpage--[front|internal/path/type].tpl.phpで動くようになった。
 
しかし、解決するのにこんな時間が掛かるとは・・・。