WP_Customize_Control::__construct() WordPress Method

The WP_Customize_Control::__construct() method is used to create a new customizer control.

WP_Customize_Control::__construct( WP_Customize_Manager $manager, string $id, array $args = array() ) #

Constructor.


Description

Supplied $args override class property defaults.

If $args['settings'] is not defined, use the $id as the setting ID.


Top ↑

Parameters

$manager

(WP_Customize_Manager)(Required)Customizer bootstrap instance.

$id

(string)(Required)Control ID.

$args

(array)(Optional)Array of properties for the new Control object.

  • 'instance_number'
    (int) Order in which this instance was created in relation to other instances.
  • 'manager'
    (WP_Customize_Manager) Customizer bootstrap instance.
  • 'id'
    (string) Control ID.
  • 'settings'
    (array) All settings tied to the control. If undefined, $id will be used.
  • 'setting'
    (string) The primary setting for the control (if there is one). Default 'default'.
  • 'capability'
    (string) Capability required to use this control. Normally this is empty and the capability is derived from $settings.
  • 'priority'
    (int) Order priority to load the control. Default 10.
  • 'section'
    (string) Section the control belongs to.
  • 'label'
    (string) Label for the control.
  • 'description'
    (string) Description for the control.
  • 'choices'
    (array) List of choices for 'radio' or 'select' type controls, where values are the keys, and labels are the values.
  • 'input_attrs'
    (array) List of custom input attributes for control output, where attribute names are the keys and values are the values. Not used for 'checkbox', 'radio', 'select', 'textarea', or 'dropdown-pages' control types.
  • 'allow_addition'
    (bool) Show UI for adding new content, currently only used for the dropdown-pages control. Default false.
  • 'json'
    (array) Deprecated. Use WP_Customize_Control::json() instead.
  • 'type'
    (string) Control type. Core controls include 'text', 'checkbox', 'textarea', 'radio', 'select', and 'dropdown-pages'. Additional input types such as 'email', 'url', 'number', 'hidden', and 'date' are supported implicitly. Default 'text'.
  • 'active_callback'
    (callable) Active callback.

Default value: array()


Top ↑

Source

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

	public function __construct( $manager, $id, $args = array() ) {
		$keys = array_keys( get_object_vars( $this ) );
		foreach ( $keys as $key ) {
			if ( isset( $args[ $key ] ) ) {
				$this->$key = $args[ $key ];
			}
		}

		$this->manager = $manager;
		$this->id      = $id;
		if ( empty( $this->active_callback ) ) {
			$this->active_callback = array( $this, 'active_callback' );
		}
		self::$instance_count += 1;
		$this->instance_number = self::$instance_count;

		// Process settings.
		if ( ! isset( $this->settings ) ) {
			$this->settings = $id;
		}

		$settings = array();
		if ( is_array( $this->settings ) ) {
			foreach ( $this->settings as $key => $setting ) {
				$settings[ $key ] = $this->manager->get_setting( $setting );
			}
		} elseif ( is_string( $this->settings ) ) {
			$this->setting       = $this->manager->get_setting( $this->settings );
			$settings['default'] = $this->setting;
		}
		$this->settings = $settings;
	}


Top ↑

Changelog

Changelog
VersionDescription
3.4.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.