I am trying to remove certain items from Twenty Sixteen Customizer using this code

function my_customize_register() {     
global $wp_customize;
$wp_customize->remove_section( 'colors' );
$wp_customize->remove_section( 'static_front_page' );
$wp_customize->remove_section( 'background_image' );
$wp_customize->remove_section( 'themes' ); 
$wp_customize->remove_panel( 'nav_menus' );  

add_action( 'customize_register', 'my_customize_register', 11 );

However, for removing 'Menus' I am getting a debug message 'WP_Customiz_Manager::remove_panel was called incorrectly. Rest everything working fine.

What should I do to remove 'Menus' itme?


1 Answer 1


Thanks Dharmishtha, but I found the answer in below stack which worked really well without throwing any debug errors:

How to remove menus section from WordPress theme customizer

The correct way to disable 'Menus' and 'Widgets' (in Customizer) lies in creating a plugin with below code (taken from the above mentioned post to make it convenient for others who might be searching for same answer).

 * Removes the core 'Menus' panel from the Customizer.
 * @param array $components Core Customizer components list.
 * @return array (Maybe) modified components list.
function wpdocs_remove_nav_menus_panel( $components ) {
    $i = array_search( 'nav_menus', $components );
    if ( false !== $i ) {
        unset( $components[ $i ] );
    return $components;
add_filter( 'customize_loaded_components', 'wpdocs_remove_nav_menus_panel' );

It can be done in other ways as well, but they throw a debug error.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.