Отменить регистрацию навигационного меню из дочерней темы
Мне нравится использовать тему Старкеров и создавать дочернюю тему.
Итак, я хотел бы удалить это основное меню
Старкеры (functions.php)
function starkers_setup() {
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'starkers' ),
) );
}
endif;
Мой ребенок-тема functions.php выглядит примерно так:
unregister_nav_menu( array(
'primary' => __( 'Primary Navigation', 'starkers' ),
));
// my new nav
register_nav_menus(array(
'primary_navigation' => __('Main', 'starkers'),
'utility_navigation' => __('Meta', 'starkers')
));
Но это не работает для меня.
Что случилось?
Спасибо
6
3 answers
Настройка темы Starkers подключена к after_setup_theme
с приоритетом 10
. Таким образом, вам в основном нужно обернуть функцию отмены регистрации внутри другой функции (дочерние темы functions.php файл) и добавьте его позже , чем функция настройки родительских тем, поэтому он сначала добавляется родителем, а затем удаляется дочерним.
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 );
11
Author: kaiser, 2012-04-22 17:04:59
Это определенно должно сработать для вас, я только что проверил
add_action( 'after_setup_theme', 'remove_default_menu', 11 );
function remove_default_menu(){
unregister_nav_menu('primary');
}
1
Author: IFightCode, 2012-04-22 17:06:59
Другие решения для меня не сработали.
Это сработало:
function remove_parent_theme_locations()
{
unregister_nav_menu( 'primary' );
}
add_action( 'init', 'remove_parent_theme_locations', 20 );
0
Author: Aleksandar M, 2020-11-21 21:06:43