This function is in WordPress 3.0.1. You can now just call unregister_nav_menu and don’t need to put it in your child theme
One of the great additions to WordPress 3.0 is navigation menus. One of the aspects that it contains is the ability for a theme to register a nav menu location and for the user to assign any menu they want to that location. GREAT! Except that a missing piece of functionality is the ability for Child Themes to remove a location that it might no longer want. I’ve created a ticket and submitted a patch, but if you need that functionality now, just add the code below to you child theme’s functions.php file:
[php]
if (! function_exists(‘unregister_nav_menu’) ):
function unregister_nav_menu( $location ) {
global $_wp_registered_nav_menus;
if (is_array($_wp_registered_nav_menus) && array_key_exists( $location, $_wp_registered_nav_menus ) ){
unset( $_wp_registered_nav_menus[$location] );
return true;
}
return false;
}
endif;
[/php]
Then all you need to do is call:
[php]
//Remove Twenty Ten Default Menu Location
unregister_nav_menu(‘primary’);[/php]
At some point after the nav menu is registered. I like to use the init hook.