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
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It only takes a minute to sign up.
Sign up to join this communityYou 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.
Feb 18, 2017 at 19:21
$menu = wp_get_nav_menu_object ('id');
Feb 18, 2017 at 19:26
menu name
you need the menu name
, same with the ID
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
));
?>