How do I get the name of a menu in WordPress?

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

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

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

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x