WP_Customize_Manager::add_panel( WP_Customize_Panel|string $id, array $args = array() )

Adds a customize panel.


Top ↑

See also

Top ↑



(WP_Customize_Panel|string) (Required) Customize Panel object, or ID.


(array) (Optional) Array of properties for the new Panel object. See WP_Customize_Panel::__construct() for information on accepted arguments.

Default value: array()

Top ↑


(WP_Customize_Panel) The instance of the panel that was added.

Top ↑


File: wp-includes/class-wp-customize-manager.php

	public function add_panel( $id, $args = array() ) {
		if ( $id instanceof WP_Customize_Panel ) {
			$panel = $id;
		} else {
			$panel = new WP_Customize_Panel( $this, $id, $args );

		$this->panels[ $panel->id ] = $panel;
		return $panel;

Top ↑


Version Description
4.5.0 Return added WP_Customize_Panel instance.
4.0.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 2 content
    Contributed by Ben

    If you are wondering why your panel is visible but disappears after the customizer is fully loaded, it is probably because you added the ‘customizer_register’ action only when is_admin() is true.

    Do this instead:

    if ( is_admin() || is_customize_preview() ) {
        add_action( 'customize_register', 'wpdocs_your_customize_register' );

    Now your panel will not be hidden when the customizer is fully loaded.

You must log in before being able to contribute a note or feedback.