Drupal 7模板建议 - 为什么这不起作用?

时间:2011-04-20 14:13:23

标签: drupal themes preprocessor drupal-7 theming

我创造了自己的主题。在template.php文件中,我有以下代码:

function mytheme_preprocess_page(&$variables) {
    if(isset($variables['node'])){
        if($variables['node']->type === 'sports'){
            $variables['theme_hook_suggestions'][] = 'page__node__sports';
        }
    }
}

我的主题模板目录中有一个page_ 节点 _sports.tpl.php文件,我已经清除了缓存。但是,不会使用page_ 节点 _sports.tpl.php模板。做一些调试,我在preprocess_page函数的开头粘贴了一个echo语句,并且确实出现在屏幕上,所以我知道函数正在运行。但模板建议不起作用。我甚至删除了函数中的if语句,只留下$ variables ['theme_hook_suggestions'] = ...行,但仍然是nada。

知道出了什么问题吗?

2 个答案:

答案 0 :(得分:2)

您是否还在主题文件夹中添加了page.tpl.php?建议仅在原始模板存在时才有效。

另见http://adaptivethemes.com/page-template-suggestions-per-node-type

答案 1 :(得分:1)

想出来。虽然行中的模板名称为:

$variables['theme_hook_suggestions'][] = 'page__node__sports';

应该有下划线,实际的.tpl.php文件应该有连字符。