Drupal 7中的自定义分类术语页面


Custom Taxonomy Term page in Drupal 7

我正试图在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中,但它不起作用。你能帮我吗?如果我让自定义页面正常工作,我该如何获取带有这个术语的节点(在page--taxonomy.tpl.php中)?提前谢谢。

试着在模板中使用它。php:

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

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

不确定这是否能满足您的需求,但默认的D7视图之一——Taxonomy术语——模拟了Drupal核心对分类法/术语页面的处理。你可以启用它(它会自动取代Drupal的核心分类URL),然后用它做任何你想做的事情,保留原始的页面结构、所有块等,使用视图的页面模板(请参阅"高级"中的"主题信息")和所有其他的提示。。。

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

参见分类法-term.tpl.php

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