The get_registered_nav_menus() WordPress PHP function retrieves all registered navigation menu locations in the active theme.
Usage
$menus = get_registered_nav_menus();
Parameters
- None
More information
See WordPress Developer Resources: get_registered_nav_menus()
Examples
Display a simple list of the registered menus
This example retrieves all registered navigation menus and displays them as a list.
$menus = get_registered_nav_menus();
foreach ($menus as $location => $description) {
echo $location . ': ' . $description . '<br />';
}
Display registered menus in a select dropdown
This example retrieves all registered navigation menus and creates a select dropdown for choosing one.
echo '<select>';
$menus = get_registered_nav_menus();
foreach ($menus as $location => $description) {
echo '<option value="' . $location . '">' . $description . '</option>';
}
echo '</select>';
Check if a specific menu location is registered
This example checks if a specific menu location, ‘primary-menu’, is registered in the theme.
$menus = get_registered_nav_menus();
if (array_key_exists('primary-menu', $menus)) {
echo 'Primary menu is registered.';
} else {
echo 'Primary menu is not registered.';
}
Count the number of registered menus
This example retrieves all registered navigation menus and counts them.
$menus = get_registered_nav_menus(); $menu_count = count($menus); echo 'There are ' . $menu_count . ' registered menus.';
Retrieve and display menu descriptions
This example retrieves all registered navigation menus and displays their descriptions in a list.
$menus = get_registered_nav_menus();
foreach ($menus as $description) {
echo $description . '<br />';
}