我想在我的主题header.php
文件的每个页面上的模板中吐出这个菜单:
注意:主题有3个菜单位置,但我会将它们用于不同的菜单,因此我无法使用这些预先存在的位置。
我尝试使用以下代码在functions.php
中注册:
function register_my_menu() {
register_nav_menu('utility-menu',__( 'Utility' ));
}
add_action( 'init', 'register_my_menu' );
注册它,var_dump( get_registered_nav_menus() );
返回:
array(4) {
["menu-header"]=>
string(11) "Menu Header"
["menu-top"]=>
string(8) "Menu Top"
["wpv-push-menu"]=>
string(9) "Push Menu"
["utility-menu"]=>
string(7) "Utility"
}
但这似乎并没有把它联系起来。我显然是以错误的方式做事,所以有人能指出我不理解的事情吗?我想知道如何正确地获取该菜单。
wp_nav_menu( array( 'name' => 'Utility' ) );
wp_nav_menu( array( 'theme_location' => 'utility-menu' ) );
似乎要拉入另一个菜单。
答案 0 :(得分:1)
您应该在after_setup_theme
期间注册您的菜单,而不是init
。
add_action( 'after_setup_theme', 'register_my_menu' );
function register_my_menu(){
register_nav_menu( 'utility-menu', 'Utility Menu' );
}
然后,在菜单管理员上,确保将任何菜单分配到效用菜单(您可以在菜单设置菜单页面,菜单顶部等下看到它。
完成这两件事之后,你会像在第二个例子中那样称呼它:
wp_nav_menu( array(
'theme_location' => 'utility-menu'
) );