如何禁用Timber\Menu的回退功能?
在Timber中禁用WordPress菜单回退功能的方法
Timber\Menu底层基于WordPress原生的wp_nav_menu()实现,因此你可以直接通过传递原生参数来禁用回退功能,以下是两种可行方案:
方法1:实例化Timber\Menu时传入fallback_cb参数
在PHP模板文件(比如functions.php或页面模板)中,实例化菜单时直接指定fallback_cb为false,和原生wp_nav_menu()的用法一致:
// 实例化主菜单并禁用回退 $primary_menu = new Timber\Menu(array( 'theme_location' => 'primary', 'fallback_cb' => false )); // 将菜单传入Twig上下文 $context['primary_menu'] = $primary_menu;
当没有为primary主题位置分配菜单时,Timber不会生成默认的页面列表回退内容。
方法2:在Twig模板中判断菜单是否存在后再渲染
如果不想在PHP层修改,也可以在Twig模板里先检查菜单是否包含有效菜单项,再决定是否渲染:
首先在PHP中正常获取菜单:
$context['primary_menu'] = new Timber\Menu('primary');
然后在Twig模板中添加判断:
{% if primary_menu.items is not empty %} <nav class="primary-nav"> {{ primary_menu.render }} </nav> {% endif %}
这种方式会在菜单无有效内容时(包括触发回退的情况),不渲染导航区域。
需要注意的是,Timber\Menu的构造函数完全兼容wp_nav_menu()的参数列表,原生函数支持的参数基本都可以直接传入使用。
内容的提问来源于stack exchange,提问作者Hsins
相关产品推荐
相关产品推荐

