在这里慢慢失去理智:
我需要为某个词汇表的术语制作模板。我创建了一个子主题,并且我正在尝试使用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
有什么想法吗?
答案 0 :(得分:0)
我认为可能是因为您将建议添加到数组的开头而不是结尾 替换:
$variables['theme_hook_suggestions'][0] = 'page__vocabulary__' . $term->vocabulary_machine_name;
使用:
$variables['theme_hook_suggestions'][] = 'page__vocabulary__' . $term->vocabulary_machine_name;