我有一个自定义菜单叫做“页脚”,机器可读的名字是“菜单-页脚”。并且我想覆盖菜单的theme_menu_tree()函数。我的主题名称是"abc",所以我尝试了abc_menu_tree__menu_footer(),但它不起作用。但是修改abc_menu_tree()是可行的,所以它必须与覆盖自定义菜单有关。
我检查了这个Question,但是它不工作。为了允许覆盖自定义菜单,我需要做什么吗?
提前感谢您的帮助。
编辑:
函数代码如下:
function abc_menu_tree__menu_footer($variables) {
return '<nav class="sub-navigation"><ul>' . $variables['tree'] . '</ul></nav>';
}abc_menu_link__menu_footer()也不能被覆盖。在abc_menu_link()中,您可以检查上下文,因此这不是一个大问题。如果我检查元素的主题是否为"menu_link__menu_footer“,它是否适用于菜单链接。
Edit2:
我也不能覆盖主菜单的abc_menu_tree。abc_menu_tree__main_menu不工作。
发布于 2013-11-12 18:22:04
为了在主菜单上使用THEME_menu_tree,而不是使用THEME_menu_tree__main_menu(),您需要使用THEME_menu_tree__primary()
这是因为提供主要链接的菜单是在admin/structure/ menu /settings中定义的。
在深入研究基数主题的radix_preprocess_page()函数时,我想到了这一点,在该函数中,通过使用variable_get()设置了主菜单变量,以便在page.tpl.php中使用。好了!我们很容易忘记那些微小的配置。
所以是的。THEME_menu_tree__primary()和THEME_menu_tree__secondary()可能就是您要查找的函数!
https://stackoverflow.com/questions/16919200
复制相似问题