为什么 wp_nav_menu 没有按正确的顺序检索菜单?
Why wp_nav_menu does not retrieve menu in correct order?
我正在尝试使用以下代码在 header.php 上拉出菜单:
wp_nav_menu( array(
'theme_location' => 'main-menu',
'menu_id' => 'main-menu',
) );
并且在我的管理员登录外观 > 菜单中,main-menu 的顺序如下:
Home
About
Tours
Pages
Contact Us
Help Desk
Gallery
Destinations
Blog
Booking
但在header中,顺序是混乱的,甚至不显示子菜单。
在 header
上订购
About
Pages
Tours
Booking
Home
Blog
Destinations
帮帮我!我什至尝试使用 order_by/sort_column,它们对我不起作用。
如果您从头开始开发主题,请添加以下内容作为数组的索引
'orderby' => 'menu_order'
会像下面这样
wp_nav_menu( array(
'theme_location' => 'main-menu',
'orderby' => 'menu_order'
'menu_id' => 'main-menu',
) );
如果您正在处理已经开发好的它们,那么问题出在数组的 'theme_location'
索引上,因此将其更改为 'theme_location' => 'primary'
它将如下所示:
wp_nav_menu( array(
'theme_location' => 'primary',
'menu_id' => 'main-menu',
) );
我想下面的代码就是您要找的。
添加你的 Menu Name
而不是 'Main menu
'
<?php
$main_menu = wp_get_nav_menu_items('Main menu');
$customize_arr = array();
if(!empty($main_menu)){
foreach($main_menu as $mm){
$mm = (array) $mm;
if($mm['menu_item_parent'] == 0){
foreach($main_menu as $sm){
$sm = (array) $sm;
if($mm['ID'] == $sm['menu_item_parent']){
(array)$mm['submenu'][] = $sm;
}
}
$customize_array[] = $mm;
}
}
}
?>
在 $customize_array 你会得到所有 menus
和 sub-menu
你只需要做 foreach
循环您的 html 代码。
100% 工作代码..希望代码对您有所帮助!
我正在尝试使用以下代码在 header.php 上拉出菜单:
wp_nav_menu( array(
'theme_location' => 'main-menu',
'menu_id' => 'main-menu',
) );
并且在我的管理员登录外观 > 菜单中,main-menu 的顺序如下:
Home
About
Tours
Pages
Contact Us
Help Desk
Gallery
Destinations
Blog
Booking
但在header中,顺序是混乱的,甚至不显示子菜单。 在 header
上订购About
Pages
Tours
Booking
Home
Blog
Destinations
帮帮我!我什至尝试使用 order_by/sort_column,它们对我不起作用。
如果您从头开始开发主题,请添加以下内容作为数组的索引
'orderby' => 'menu_order'
会像下面这样
wp_nav_menu( array(
'theme_location' => 'main-menu',
'orderby' => 'menu_order'
'menu_id' => 'main-menu',
) );
如果您正在处理已经开发好的它们,那么问题出在数组的 'theme_location'
索引上,因此将其更改为 'theme_location' => 'primary'
它将如下所示:
wp_nav_menu( array(
'theme_location' => 'primary',
'menu_id' => 'main-menu',
) );
我想下面的代码就是您要找的。
添加你的 Menu Name
而不是 'Main menu
'
<?php
$main_menu = wp_get_nav_menu_items('Main menu');
$customize_arr = array();
if(!empty($main_menu)){
foreach($main_menu as $mm){
$mm = (array) $mm;
if($mm['menu_item_parent'] == 0){
foreach($main_menu as $sm){
$sm = (array) $sm;
if($mm['ID'] == $sm['menu_item_parent']){
(array)$mm['submenu'][] = $sm;
}
}
$customize_array[] = $mm;
}
}
}
?>
在 $customize_array 你会得到所有 menus
和 sub-menu
你只需要做 foreach
循环您的 html 代码。
100% 工作代码..希望代码对您有所帮助!