Unregisters a navigation menu location for a theme.
Parameters
$location
stringrequired- The menu location identifier.
Source
function unregister_nav_menu( $location ) {
global $_wp_registered_nav_menus;
if ( is_array( $_wp_registered_nav_menus ) && isset( $_wp_registered_nav_menus[ $location ] ) ) {
unset( $_wp_registered_nav_menus[ $location ] );
if ( empty( $_wp_registered_nav_menus ) ) {
_remove_theme_support( 'menus' );
}
return true;
}
return false;
}
Changelog
Version | Description |
---|---|
3.1.0 | Introduced. |
Delete a previously registered location
Calling get_nav_menu_locations() will show you an array of all the nav location slugs and their associated menu ID you have registered/ and or used in the past. The get_nav_menu_locations() function checks a theme mod so to fully unregister/remove menu location we need an extra step missing from unregister_nav_menu() by removing the location slug from the get_theme_mod(‘nav_menu_locations’) array and then resetting the theme mod without the $location we want to remove.
Basic Example