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
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;
wp_get_nav_menu_object
function, that is it.
Commented
Feb 18, 2017 at 19:21
$menu = wp_get_nav_menu_object ('id');
Commented
Feb 18, 2017 at 19:26
menu name
you need the menu name
, same with the ID
Commented
Feb 18, 2017 at 19:41
On WordPress version 4.9.0 and above you can use
wp_get_nav_menu_name($location)
wp_nav_menu_name for more
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
));
?>