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