The add_panel()
method in WordPress’s WP_Customize_Manager
class is used to add a new panel to the WordPress Customizer. A panel is a container for sections, allowing you to group related sections together, making the Customizer interface more organized, especially for themes or plugins with many customization options.
add_panel()
add_panel()
Syntax$wp_customize->add_panel( $id, $args );
$id
: A unique identifier for the panel. This ID is used to refer to the panel in your code.$args
: An array of arguments that define the panel’s properties, such as title, description, priority, and more.add_panel()
Here’s an example of how to use add_panel()
to create a panel in the WordPress Customizer:
function mytheme_customize_register( $wp_customize ) {
// Add a new panel
$wp_customize->add_panel( 'mytheme_design_panel', array(
'title' => __( 'Design Settings', 'mytheme' ),
'description' => __( 'Customize the design settings of your theme.', 'mytheme' ),
'priority' => 10,
));
// Add a section to the panel
$wp_customize->add_section( 'mytheme_header_section' , array(
'title' => __( 'Header Settings', 'mytheme' ),
'panel' => 'mytheme_design_panel', // Associate this section with the panel
'priority' => 10,
));
// Add a setting
$wp_customize->add_setting( 'mytheme_header_color', array(
'default' => '#ffffff',
'transport' => 'refresh',
));
// Add a control
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'mytheme_header_color', array(
'label' => __( 'Header Background Color', 'mytheme' ),
'section' => 'mytheme_header_section', 'settings' => 'mytheme_header_color',
)));
}
add_action( 'customize_register', 'mytheme_customize_register' );
$wp_customize->add_panel( 'mytheme_design_panel', array(
'title' => __( 'Design Settings', 'mytheme' ),
'description' => __( 'Customize the design settings of your theme.', 'mytheme' ),
'priority' => 10,
));
'mytheme_design_panel'
: This is the unique ID for the panel.'title' => __( 'Design Settings', 'mytheme' )
: The title of the panel, which will appear in the Customizer.'description' => __( 'Customize the design settings of your theme.', 'mytheme' )
: An optional description that provides more details about what the panel does. This text is usually displayed under the panel’s title.'priority' => 10
: Determines the order in which the panel appears in the Customizer. Panels with lower priority numbers appear first.$wp_customize->add_section( 'mytheme_header_section', array(
'title' => __( 'Header Settings', 'mytheme' ),
'panel' => 'mytheme_design_panel', // Associates this section with the panel
'priority' => 10,
));
'mytheme_header_section'
: The unique ID for the section.'title' => __( 'Header Settings', 'mytheme' )
: The title of the section.'panel' => 'mytheme_design_panel'
: This line associates the section with the previously defined panel (mytheme_design_panel
). Without this, the section would appear outside the panel.'priority' => 10
: Sets the order of the section within the panel.$wp_customize->add_setting( 'mytheme_header_color', array(
'default' => '#ffffff',
'transport' => 'refresh',
));
'mytheme_header_color'
: The ID of the setting.'default' => '#ffffff'
: The default value of the setting.'transport' => 'refresh'
: Specifies how changes to this setting are handled in the live preview.
$wp_customize->add_control( new WP_Customize_Color_Control(
$wp_customize, 'mytheme_header_color', array(
'label' => __( 'Header Background Color', 'mytheme' ),
'section' => 'mytheme_header_section',
'settings' => 'mytheme_header_color',
)));
WP_Customize_Color_Control
: A predefined control type in WordPress for color picking.'label' => __( 'Header Background Color', 'mytheme' )
: The label for the control, describing what it does.'section' => 'mytheme_header_section'
: Associates this control with the mytheme_header_section
section.'settings' => 'mytheme_header_color'
: Links this control to the mytheme_header_color
setting, so that any changes made with this control will update the setting.Using add_panel()
, you can create a structured and organized Customizer interface by grouping related sections under panels. This approach enhances usability, especially in themes or plugins with extensive customization options. Panels serve as containers that help manage and categorize settings, making the Customizer more intuitive for users.
test