为什么WordPress管理仪表板上的我创建的菜单出现在customtemplate.php
尽管没有定义正确的\'theme_location\'
?
即使WordPress管理仪表板中创建的菜单未设置为在任何位置显示,它也会显示在该位置。
仅当测试了以下if检查时,它才会隐藏。为什么?
if(has_nav_menu(\'menu-ID1\'))
Functions.php
register_nav_menus(
array(
\'menu-ID1\' => __( \'MenuName\', \'blabla\' ),
)
);
customtemplate.php
//Still displays even though the registered menu-ID1 is not used
wp_nav_menu([\'theme_location\' => \'randomname\']);
最合适的回答,由SO网友:Sally CJ 整理而成
我猜你的菜单只包含几页page
类型)在您的网站上?
但尽管如此wp_nav_menu()
, 如果指定theme_location
不存在或不包含菜单(即,没有分配给该位置的菜单),则fallback_cb
arg(默认为wp_page_menu()
) 将确定显示的内容。
因此,如果希望函数仅在指定的主题位置显示菜单,可以执行以下操作has_nav_menu()
检查:
if ( has_nav_menu( \'menu-ID1\' ) ) {
wp_nav_menu( \'theme_location=menu-ID1\' );
}
或设置
fallback_cb
到空字符串:
wp_nav_menu( array(
\'theme_location\' => \'menu-ID1\',
\'fallback_cb\' => \'\',
) );
// or you may pass the function args as a query string:
wp_nav_menu( \'theme_location=menu-ID1&fallback_cb=\' );