Class Name:
MP_CORE_Customizer
Purpose:
To simplify and speed up the process of creating customizer fields.
Overview:
This class uses associative arrays passed to the MP_CORE_Customizer class to create new customizer fields that auto transport without needing to write extra javascript files.
Usage:
new MP_CORE_Customizer($args);
Parameters:
$args (array)
Sample Code:
function mt_malachi_customizer(){
$my_section_id_1 = 'my_first_section';
$my_section_title_1 = __( 'My Main Section', 'textdomain' );
$my_section_priority_1 = 1;
$my_setting_id_1 = 'my_first_setting';
$my_setting_id_2 = 'my_second_setting';
$my_setting_id_3 = 'my_third_setting';
$args = array(
array( 'section_id' => $my_section_id_1, 'section_title' => $my_section_title_1,'section_priority' => $my_section_priority_1,
'settings' => array(
$my_setting_id_1 => array(
'label' => __( 'My First Setting', 'textdomain' ),
'type' => 'color',
'default' => '#000000',
'priority' => 1,
'element' => '#main',
'jquery_function_name' => 'css',
'arg' => 'background-color'
),
$my_setting_id_2 => array(
'label' => __( 'My Second Setting', 'textdomain' ),
'type' => 'checkbox',
'default' => '',
'priority' => 2,
'element' => '#main',
'jquery_function_name' => 'css',
'arg' => 'display'
),
$my_setting_id_3 => array(
'label' => __( 'My Third Setting', 'textdomain' ),
'type' => 'select',
'default' => '',
'priority' => 2,
'element' => NULL,
'jquery_function_name' => NULL,
'arg' => NULL,
'choices' => array ( 'option_value_1' => 'Option 1', 'option_value_2' => 'Option 2' )
),
)
)
);
new MP_CORE_Customizer($args);
Usage Breakdown:
Each section is created by having a new second-level array in the $args array.
This is a sample of what 3 sections would look like with no fields in the section:
$args = array(
array( 'section_id' => $my_section_id_1, 'section_title' => $my_section_title_1,'section_priority' => 1, 'settings' => array() ),
array( 'section_id' => $my_section_id_2, 'section_title' => $my_section_title_2,'section_priority' => 2, 'settings' => array() ),
array( 'section_id' => $my_section_id_3, 'section_title' => _ $my_section_title_3,'section_priority' => 3, 'settings' => array() ),
);
The ‘settings’ array for each section looks like this:
'$setting_id' => array(
'label' => $setting_title,
'type' => $setting_type,
'default' => '',
'priority' => 1,
'element' => $setting_element,
'jquery_function_name' => $setting_jquery_function,
'arg' => $setting_arg
),
The variables above are:
- label (string) – The title of the setting
- type (string) – The type of field. See “Customizer Field Types” below.
- default (strong) – The default setting for this field
- priority (int) – A number which represents the order this setting will appear within this section
- element (string) – the CSS class or ID name of the element we wish to change
- jquery_function_name (string) – The name of the jquery function we are going to use. Usually this will be ‘css’ or ‘attr‘
- arg (string) – the argument we pass to the jquery function.
- choices (array) – associative array used for the “select” and “radio” post types.
Customizer Field Types
- textbox
- checkbox
- textarea
- radio
- image
- upload
- color
- select
