unregister_nav_menu()WP 3.1.0

Deletes a previously registered navigation menu.

No Hooks.

Returns

true|false.

  • true - the menu was deleted.
  • false - failed to delete the menu.

Usage

<?php unregister_nav_menu( $location ); ?>
$location(string) (required)
The name-identifier used when registering the menu, usually named after its location in the template.

Examples

0

#1 Basic example

How to delete a previously registered navigation menu with identifier primary. Do it on later hook init after all registrations:

add_action( 'init', 'theme_register_nav_menu', 20 );

function theme_register_nav_menu() {
	unregister_nav_menu( 'primary' );
}

Notes

  • Global. Array. $_wp_registered_nav_menus

Changelog

Since 3.1.0 Introduced.

unregister_nav_menu() code WP 7.0

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;
}