Displays a new controller on the Theme Customization admin screen (available in WordPress 3.4 or newer). Controls serve two purposes: they create a "physical" control that allows a user to manipulate a setting, and it also binds a pre-defined setting to a pre-defined section.
This is a method of the WP_Customize_Manager() class and can only be accessed through the $wp_customize
object within the customize_register action hook.
$wp_customize->add_control($id, $args);
'label' => __( 'Base Color Scheme', 'twentyfifteen' ),
'description' => __( 'Applied to the header on small screens and the sidebar on wide screens.', 'twentyfifteen' ),
themes
, title_tagline
, colors
, header_image
(only when enabled), background_image
(only when enabled), static_front_page
. Example: 'section' => 'colors',
text
, checkbox
, radio
, select
, textarea
, dropdown-pages
, email
, url
, number
, hidden
, and date
. Example: 'type' => 'textarea',
get_theme_mod('header_color');
. If you selected "option" type in https://codex.wordpress.org/Class_Reference/WP_Customize_Manager/add_setting then you can add here a plain word like "theme_name_header_color" which will be obtainable with get_option('theme_name_header_color');
. Serialized values like "my_namespace[header_color]" are allowed in both cases, however you probably don't need to serialize it when using "theme_mod" as it's already stored in the database as a serialized entry. If not defined, then the $id as the setting ID is used.'choices'=> twentyfifteen_get_color_scheme_choices(),
'input_attrs' => array( 'min' => 0, 'max' => 10, 'step' => 2 )
Custom controls can also be created. For more information, see this post on Ottopress.com
Remember that this example assumes you are already working within the customize_register action hook.
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'your_control_id', array( 'label' => __( 'Header Color', 'mytheme' ), 'section' => 'your_section_id', 'settings' => 'your_setting_id', 'priority' => 1 ) ));
Alternatively, it is not required to instantiate a WP_Customize_Control object. WordPress will check to see if you are passing in an object and, if absent, will create a new WP_Customize_Control object with the arguments you have passed in.
$wp_customize->add_control( 'your_control_id', array( 'label' => __( 'Control Label', 'mytheme' ), 'section' => 'your_section_id', 'settings' => 'your_setting_id', 'type' => 'radio', 'choices' => array( 'left' => 'left', 'right' => 'right', ), ) );
Note the 'type' argument is available to specify the input type of the control form element. For more information on these arguments, please refer to WP_Customize_Control
To force a specific image size see: WP_Customize_Cropped_Image_Control