Почему я получаю нулевое значение для $location [$menu_name]?

Я сохранил название своего меню как 'main_nav' и попытался получить все элементы в нем:

$menu_name = 'main_nav';
$locations = get_nav_menu_locations();

var_dump($locations[$menu_name]); // NULL

if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
    $menu = wp_get_nav_menu_object($locations[$menu_name]);
    $menu_items = wp_get_nav_menu_items($menu->term_id);

    $menu_list = '<nav>' ."\n";
    $menu_list .= "\t\t\t\t". '<ul>' ."\n";
    foreach ((array) $menu_items as $key => $menu_item) {
        $title = $menu_item->title;
        $url = $menu_item->url;
        $menu_list .= "\t\t\t\t\t". '<li><a href="'. $url .'">'. $title .'</a></li>' ."\n";
    }
}

Но я получаю null за $locations[$menu_name], Есть идеи, что я пропустил?

1 ответ

Как $menu_name попробуйте применить ключи, которые были использованы в register_nav_menus функция в вашем файле functions.php.

Другие вопросы по тегам