Unregister Nav Menu from Child-Theme

I like to use the Starkers Theme and build child-theme.

So, I`d like to remove the this primary menu

Read More

Starkers (functions.php)

function starkers_setup() {
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'starkers' ),
) );


}
endif;

My child-theme functions.php looks like this:

unregister_nav_menu( array(
'primary' => __( 'Primary Navigation', 'starkers' ),
));

// my new nav
register_nav_menus(array(
'primary_navigation' => __('Main', 'starkers'),
'utility_navigation' => __('Meta', 'starkers')
));

But it doesn´t work for me.

What´s wrong?
Thanks

Related posts

Leave a Reply

3 comments

  1. The Starkers theme setup is hooked to after_setup_theme, at a priority of 10. So you basically have to wrap the unregister function inside another function (child themes functions.php file) and add it later than the parent themes setup function, so it gets first added by the parent and later on removed by the child.

    function wpse_remove_parent_theme_locations()
    {
        // @link http://codex.wordpress.org/Function_Reference/unregister_nav_menu
        unregister_nav_menu( 'primary' );
    }
    add_action( 'after_setup_theme', 'wpse_remove_parent_theme_locations', 20 );
    
  2. This should definitely work for you, I just checked out

    add_action( 'after_setup_theme', 'remove_default_menu', 11 );
    function remove_default_menu(){
    unregister_nav_menu('primary');
    }
    
  3. The other solutions didn’t work for me.

    This one worked:

    function remove_parent_theme_locations()
    {
        unregister_nav_menu( 'primary' );
    }
    add_action( 'init', 'remove_parent_theme_locations', 20 );