web-dev-qa-db-fra.com

Annuler l'enregistrement du menu de navigation de Child-Theme

J'aime utiliser le thème Starkers Theme et créer un thème enfant.

Donc, je voudrais supprimer le menu principal

Starkers (functions.php)

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


}
endif;

Mon fonctions enfant-theme.php ressemble à ceci:

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

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

Mais ça ne marche pas pour moi.

Qu'est-ce qui ne va pas?
Merci

6
ogni

La configuration du thème Starkers est liée à after_setup_theme, avec une priorité de 10. Donc, vous devez essentiellement envelopper la fonction unregister dans une autre fonction (fichier functions.php de thèmes enfants) et l’ajouter later à la fonction d’installation des thèmes parents, afin qu’elle soit d'abord ajoutée par le parent, puis supprimée par l'enfant.

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 );
8
kaiser

Cela devrait certainement fonctionner pour vous, je viens de vérifier

add_action( 'after_setup_theme', 'remove_default_menu', 11 );
function remove_default_menu(){
unregister_nav_menu('primary');
}
1
IFightCode