Почему wp_nav_menu не возвращает меню в правильном порядке? - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь открыть меню в моем 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_by / sort_column, у меня они не сработали.

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Я думаю, что ниже код это то, что вы ищете. Добавьте 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% Рабочий код .. Надеюсь, Код поможет Вам!

0 голосов
/ 17 октября 2019

Если вы разработали тему с нуля, добавьте следующее в качестве индекса вашего массива

'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',
) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...