The question:
I’m currently setting up a sidebar menu with multiple menus and sections. Each section with the title (the menu name) and a bunch of links underneath (the menu items) – I printed the items, but how do I print the menu name?
Thanks,
Jacob
The Solutions:
Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.
Method 1
You can access the menu metadata using the wp_get_nav_menu_object
function
BY NAME:
$menu = wp_get_nav_menu_object("my mainmenu" );
BY SLUG:
$menu = wp_get_nav_menu_object("my-mainmenu" );
The return object as follows:
Object (
term_id => 4
name => My Menu Name
slug => my-menu-name
term_group => 0
term_taxonomy_id => 4
taxonomy => nav_menu
description =>
parent => 0
count => 6
)
To display the name:
echo $menu->name;
Method 2
On WordPress version 4.9.0 and above you can use
wp_get_nav_menu_name($location)
wp_nav_menu_name for more
Method 3
You can get the name like this, using the menu location, so if the menu is updated or you assign other menu you dont have to update anything here:
$locations = get_nav_menu_locations(); //get all menu locations
$menu = wp_get_nav_menu_object($locations['name_of_the_menu_location']);//get the menu object
echo $menu->name; // name of the menu
the 'name_of_the_menu_location'
is the one you use to output a menu using wp_nav_menu
<?php
wp_nav_menu(array(
'theme_location' => 'footer'//this value
));
?>
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0