Drupal 7忽略了我的theme_hook_suggestions

时间:2014-09-16 17:54:49

标签: drupal drupal-7 drupal-themes

在这里慢慢失去理智:

我需要为某个词汇表的术语制作模板。我创建了一个子主题,并且我正在尝试使用theme_preprocess_page()(不知何故,主题_preprocess_taxonomy_term()从未被调用过。)

的template.php

function aura_sub2_preprocess_page(&$variables) {
  if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
    $term = taxonomy_term_load(arg(2));
    drupal_set_message( 'page__vocabulary__' . $term->vocabulary_machine_name );
    $variables['theme_hook_suggestions'][0] = 'page__vocabulary__' . $term->vocabulary_machine_name;
  }
}

正如您所看到的,我甚至覆盖了第一个用于测试目的的建议,但它没有任何改变。页面加载就好像什么都没发生过一样。 当我打开“mydomain.com/?q=en/myvocabulary/someterm”时,我收到状态消息“page__vocabulary__myvocabulary”。到目前为止这么好,但模板建议似乎被忽略了。 模板位于该子主题的“主题”目录中。我尝试了“ - ”和“__”的所有可能组合无济于事。模板只包含这个,这是一个问题吗?:

主题/页 - 词汇 - myvocabulary.tpl.php

<h1>MYVOCAB TEST</h1>

每次都清除缓存,没有变化。 :C

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为可能是因为您将建议添加到数组的开头而不是结尾 替换:

$variables['theme_hook_suggestions'][0] = 'page__vocabulary__' . $term->vocabulary_machine_name;

使用:

$variables['theme_hook_suggestions'][] = 'page__vocabulary__' . $term->vocabulary_machine_name;