我正在尝试在Drupal 7中创建一个自定义的Taxonomy Term页面。我在templates文件夹中创建了一个页面 - taxonomy.tpl.php文件。该文件仅打印出一条消息。我现在尝试通过添加
来强制模板文件function template_preprocess_page($variables) {
if (arg(0) == 'taxonomy') {
$variables['template_file'] = 'page--taxonomy-tpl';
}
}
在我的template.php中,但它不起作用。你能帮助我吗?如果我让自定义页面工作,我如何用这个术语获取节点(在页面 - taxonomy.tpl.php)?提前谢谢。
答案 0 :(得分:9)
尝试在template.php中使用它:
function template_preprocess_page(&$variables) {
if (arg(0) == 'taxonomy') {
$variables['theme_hook_suggestions'][] = 'page__taxonomy';
}
}
$variables
,因此请添加&在它之前template_file
已更改为Drupal 7中的theme_hook_suggestions
-tpl
,除非您希望它是文件名的一部分,例如“page - taxonomy-tpl.tpl.php”,我认为这不是什么你想要的。有关详细信息,请查看template_preprocess_page(),theme_get_suggestions()和Working with template suggestions
答案 1 :(得分:3)
不确定这是否符合您的要求,但默认的D7视图之一 - 分类术语 - 模拟Drupal核心对分类/术语页面的处理。您可以启用它(它将自动替换Drupal的核心分类URL),然后使用Views的页面模板保留原始页面结构,所有块等(请参阅“高级”中的“主题信息”),随意执行任何操作和所有其他的花里胡哨......
答案 2 :(得分:0)
由于您使用的是 Drupal 7 ,因此您还可以创建文件名“taxnomy-term.tpl.php”并根据需要进行修改。
答案 3 :(得分:0)
可以使用hook_menu_alter()获取对分类术语页面的完全控制权。见https://drupal.stackexchange.com/questions/48420/theming-and-overriding-taxonomy-term-vocabulary-page/111194#111194