WordPress Theme Customiser
Customiser Object
Four main types
Panels
Containers for sections
Sections
UI containers
Settings
Accociate UI elements(controls) with settings
$wp_customize->add_setting( 'setting_id', array(
'type' => 'theme_mod', // or 'option'
'capability' => 'edit_theme_options',
'theme_supports' => '', // Rarely needed.
'default' => '',
'transport' => 'refresh', // or postMessage
'sanitize_callback' => '',
'sanitize_js_callback' => '', // Basically to_json.
) );
Theme Modification VS Options
$wp_customize->add_setting('custom_theme_css', array(
'type' => 'theme_mod',
) );
$wp_customize->add_setting('custom_theme_css', array(
'type' => 'option',
) );
Default Value and Sanitization callback: ensure that no unsafe data is stored in the database
$wp_customize->add_setting( 'accent_color', array(
'default' => '#f72525',
'sanitize_callback' => 'sanitize_hex_color',
) );
Retrieve and use the values: get_theme_mod( string $name, bool|string $default = false )
Controls
WP_Customize_Manager
Methods: add_TYPE , get_TYPE , and remove_TYPE
add_action('customize_register','my_customize_register');
function my_customize_register( $wp_customize ) {
$wp_customize->add_panel();
$wp_customize->get_panel();
$wp_customize->remove_panel();
$wp_customize->add_section();
$wp_customize->get_section();
$wp_customize->remove_section();
$wp_customize->add_setting();
$wp_customize->get_setting();
$wp_customize->remove_setting();
$wp_customize->add_control();
$wp_customize->get_control();
$wp_customize->remove_control();
}