这是面板,不是截面remove_section()
在这种情况下不起作用。但是,您可以使用函数remove_panel()
但这会引发一个通知
注意:调用了WP\\U Customize\\u Manager::remove\\u面板incorrectly 手动删除nav\\u菜单将导致PHP警告。使用customize_loaded_components
改为过滤。有关详细信息,请参阅WordPress中的调试。(此消息是在版本4.5中添加的。)在\\wp中包含\\个函数。php在线3897
现在customize_loaded_components
过滤器显示
这允许通过将核心组件从阵列中筛选出来,将其从实例化中排除。请注意,此筛选器通常在“plugins\\u loaded”操作期间运行,因此无法将其添加到主题中。
所以,从customizer中删除菜单部分并使用主题并没有直接的方法,但如果您愿意,我找到了一个解决方案(可能不太好),它可以在没有任何警告和错误的情况下工作。
课堂上WP_Customize_Nav_Menus
构造函数检查
if ( ! current_user_can( \'edit_theme_options\' ) ) {
return;
}
然后为nave菜单部分注册所有操作/过滤器,这样删除所有这些过滤器/操作就可以实现这一目的。但要删除这些过滤器/操作,我们需要用于注册它们的相同对象。是的,我们有
customize_register
操作回调。
您可以将此代码添加到主题中functions.php
add_action(\'customize_register\', function ( $WP_Customize_Manager ){
//check if WP_Customize_Nav_Menus object exist
if (isset($WP_Customize_Manager->nav_menus) && is_object($WP_Customize_Manager->nav_menus)) {
//Remove all the filters/actions resiterd in WP_Customize_Nav_Menus __construct
remove_filter( \'customize_refresh_nonces\', array( $WP_Customize_Manager->nav_menus, \'filter_nonces\' ) );
remove_action( \'wp_ajax_load-available-menu-items-customizer\', array( $WP_Customize_Manager->nav_menus, \'ajax_load_available_items\' ) );
remove_action( \'wp_ajax_search-available-menu-items-customizer\', array( $WP_Customize_Manager->nav_menus, \'ajax_search_available_items\' ) );
remove_action( \'customize_controls_enqueue_scripts\', array( $WP_Customize_Manager->nav_menus, \'enqueue_scripts\' ) );
remove_action( \'customize_register\', array( $WP_Customize_Manager->nav_menus, \'customize_register\' ), 11 );
remove_filter( \'customize_dynamic_setting_args\', array( $WP_Customize_Manager->nav_menus, \'filter_dynamic_setting_args\' ), 10, 2 );
remove_filter( \'customize_dynamic_setting_class\', array( $WP_Customize_Manager->nav_menus, \'filter_dynamic_setting_class\' ), 10, 3 );
remove_action( \'customize_controls_print_footer_scripts\', array( $WP_Customize_Manager->nav_menus, \'print_templates\' ) );
remove_action( \'customize_controls_print_footer_scripts\', array( $WP_Customize_Manager->nav_menus, \'available_items_template\' ) );
remove_action( \'customize_preview_init\', array( $WP_Customize_Manager->nav_menus, \'customize_preview_init\' ) );
remove_filter( \'customize_dynamic_partial_args\', array( $WP_Customize_Manager->nav_menus, \'customize_dynamic_partial_args\' ), 10, 2 );
}
}, -1); //Give it a lowest priority so we can remove it on right time