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

Php Drupal 7中的自定义分类术语页,php,drupal,drupal-7,drupal-taxonomy,Php,Drupal,Drupal 7,Drupal Taxonomy,我试图在Drupal7中创建一个自定义的分类术语页面。我在templates文件夹中创建了一个页面--taxonomy.tpl.php文件。该文件只打印出一条消息。我现在尝试通过添加 function template_preprocess_page($variables) { if (arg(0) == 'taxonomy') { $variables['template_file'] = 'page--taxonomy-tpl'; } } 在我的template.php中,

我试图在Drupal7中创建一个自定义的分类术语页面。我在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\u文件
    已更改为
    theme\u hook\u suggestions
  • 您不需要模板建议中的
    -tpl
    ,除非您希望它成为文件名的一部分,如“page--taxonomy tpl.tpl.php”,我认为这不是您想要的

有关更多信息,请查看,不确定这是否满足您的要求,但默认的D7视图之一-分类术语-模拟Drupal core对分类/术语页面的处理。您只需启用它(它将自动替换Drupal的核心分类URL),然后使用视图的页面模板(请参阅“高级”中的“主题信息”)和所有其他提示,使用它做任何您想做的事情,保留原始页面结构、所有块等…

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


请参见

可以使用hook\u menu\u alter()获得对分类术语页面的完全控制权。请参见

谢谢,伙计-它很有效!然而,这是定制分类页面的最佳方法吗?我想使用我的模板的所有地区,只是做一个自定义的“主要内容”。这有意义吗?此模板将覆盖所有内容。@s0mmer我认为这是必须完成的方式。它正在为整个页面创建布局,而不仅仅是主要内容。因此,如果您想要所有的普通区域等等,请打开page.tpl.php并将其复制/粘贴到page--taxonomy.tpl.php中,然后从那里您可以自定义您喜欢的任何区域,并拥有您的普通区域,等等