我创造了自己的主题。在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。
知道出了什么问题吗?
答案 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文件应该有连字符。