The customize_panel_active WordPress PHP filter allows you to modify the response of the WP_Customize_Panel::active()
method, which determines if a Customizer panel is active or not.
Usage
add_filter('customize_panel_active', 'your_custom_function', 10, 2); function your_custom_function($active, $panel) { // your custom code here return $active; }
Parameters
$active
(bool) – Whether the Customizer panel is active.$panel
(WP_Customize_Panel) – Instance of the WP_Customize_Panel.
More information
See WordPress Developer Resources: customize_panel_active
Examples
Deactivating a specific Customizer panel
Deactivates the ‘nav_menus’ panel in the Customizer.
add_filter('customize_panel_active', 'deactivate_nav_menus_panel', 10, 2); function deactivate_nav_menus_panel($active, $panel) { if ('nav_menus' === $panel->id) { return false; } return $active; }
Activating a Customizer panel based on user role
Activates the ‘example_panel’ panel only for users with the ‘editor’ role.
add_filter('customize_panel_active', 'activate_panel_for_editor_role', 10, 2); function activate_panel_for_editor_role($active, $panel) { if ('example_panel' === $panel->id && current_user_can('editor')) { return true; } return $active; }
Deactivating all Customizer panels
Deactivates all Customizer panels.
add_filter('customize_panel_active', 'deactivate_all_customizer_panels', 10, 2); function deactivate_all_customizer_panels($active, $panel) { return false; }
Activating a Customizer panel based on a condition
Activates the ‘conditional_panel’ panel only if a specific theme option is set.
add_filter('customize_panel_active', 'activate_panel_based_on_theme_option', 10, 2); function activate_panel_based_on_theme_option($active, $panel) { $theme_option = get_theme_mod('example_theme_option', false); if ('conditional_panel' === $panel->id && $theme_option) { return true; } return $active; }
Deactivating a Customizer panel on specific templates
Deactivates the ‘page_options’ panel on the ‘front-page.php’ template.
add_filter('customize_panel_active', 'deactivate_panel_on_front_page', 10, 2); function deactivate_panel_on_front_page($active, $panel) { if ('page_options' === $panel->id && is_page_template('front-page.php')) { return false; } return $active; }