Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么wp_导航菜单不能按正确顺序检索菜单?_Php_Wordpress_Menu - Fatal编程技术网

Php 为什么wp_导航菜单不能按正确顺序检索菜单?

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 但在标题中,顺序

我正在尝试使用以下代码在我的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
但在标题中,顺序混乱,甚至不显示子菜单。 标题上的订单

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%工作代码..我希望代码能帮助你

我两种方法都试过了,但两种方法都不起作用。