5

我正在尝试在 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 中)?提前致谢。

4

4 回答 4

9

尝试在你的 template.php 中使用它:

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

有关更多信息,请查看template_preprocess_page()theme_get_suggestions()使用模板建议

于 2011-06-22T13:07:23.440 回答
3

不确定这是否符合您的要求,但默认 D7 视图之一 - 分类术语 - 模拟 Drupal 核心对分类/术语页面的处理。你可以启用它(它会自动替换 Drupal 的核心分类 URL),然后用它做任何你想做的事情,保持原始页面结构、所有块等,使用 Views 的页面模板(参见“高级”中的“主题信息”)和所有其他的花里胡哨...

于 2011-06-23T22:46:42.990 回答
0

由于您使用的是Drupal 7,您还可以创建一个文件名“taxnomy-term.tpl.php”并根据您的需要进行编辑。

分类术语.tpl.php

于 2012-03-19T21:12:11.517 回答
0

可以使用 hook_menu_alter() 获得对分类术语页面的完全控制。请参阅https://drupal.stackexchange.com/questions/48420/theming-and-overriding-taxonomy-term-vocabulary-page/111194#111194

于 2014-04-24T22:23:21.260 回答