我试图在Drupal 7中创建一个自定义的分类术语页面。我已经在我的模板文件夹中创建了一个页面–taxonomy.tpl.php文件。该文件仅打印出一条消息。我现在尝试通过添加来强制模板文件

function template_preprocess_page($variables) {
  if (arg(0) == 'taxonomy') {
    $variables['template_file'] = 'page--taxonomy-tpl';
  }
}

在我的template.php中,但是它不起作用。你能帮助我吗?而且,如果我使自定义页面正常工作,该如何获取带有此术语的节点(在page--taxonomy.tpl.php中)?提前致谢。

最佳答案

尝试在template.php中使用它:

function template_preprocess_page(&$variables) {
  if (arg(0) == 'taxonomy') {
    $variables['theme_hook_suggestions'][] = 'page__taxonomy';
  }
}
  • 您需要通过引用传递$variables,因此在它之前添加&
  • 在drupal 7中template_file已更改为theme_hook_suggestions
  • 除非您希望它成为文件名(例如“page--taxonomy-tpl.tpl.php”)之类的文件名的一部分,否则您不需要模板建议中的-tpl,我认为这不是您想要的。

  • 有关更多信息,请查看template_preprocess_page()theme_get_suggestions()Working with template suggestions

    10-07 21:20