Php 为什么wp_导航菜单不能按正确顺序检索菜单?
我正在尝试使用以下代码在我的header.php上拉菜单:Php 为什么wp_导航菜单不能按正确顺序检索菜单?,php,wordpress,menu,Php,Wordpress,Menu,我正在尝试使用以下代码在我的header.php上拉菜单: wp_nav_menu( array( 'theme_location' => 'main-menu', 'menu_id' => 'main-menu', ) ); 在我的管理员登录外观>菜单中,主菜单的顺序如下: Home About Tours Pages Contact Us Help Desk Gallery Destinations Blog Booking 但在标题中,顺序
wp_nav_menu( array(
'theme_location' => 'main-menu',
'menu_id' => 'main-menu',
) );
在我的管理员登录外观>菜单中,主菜单的顺序如下:
Home
About
Tours
Pages
Contact Us
Help Desk
Gallery
Destinations
Blog
Booking
但在标题中,顺序混乱,甚至不显示子菜单。
标题上的订单
About
Pages
Tours
Booking
Home
Blog
Destinations
帮帮我!我甚至试过使用order\u by/sort\u列,但它们对我不起作用。如果你从头开始开发主题,那么添加以下内容作为数组的索引
'orderby' => 'menu_order'
会像下面这样吗
wp_nav_menu( array(
'theme_location' => 'main-menu',
'orderby' => 'menu_order'
'menu_id' => 'main-menu',
) );
如果您正在处理一个已经开发好的主题位置,那么问题在于数组的'theme\u location'
索引,因此将其更改为'theme\u location'=>'primary'
,如下所示:
wp_nav_menu( array(
'theme_location' => 'primary',
'menu_id' => '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中,您将使用子菜单获得所有菜单
,您只需使用html代码执行foreach
循环即可
100%工作代码..我希望代码能帮助你 我两种方法都试过了,但两种方法都不起作用。