Documentazione ufficale: https://developer.wordpress.org/themes/classic-themes/customize-api/
Aggiungere in Customizer:
add_action( 'customize_register', 'my_theme_customize_register' );
function my_theme_customize_register( WP_Customize_Manager $wp_customize ) {
// Panel
$wp_customize->add_panel();
$wp_customize->get_panel();
$wp_customize->remove_panel();
// Section
$wp_customize->add_section();
$wp_customize->get_section();
$wp_customize->remove_section();
// Setting
$wp_customize->add_setting();
$wp_customize->get_setting();
$wp_customize->remove_setting();
// Control
$wp_customize->add_control();
$wp_customize->get_control();
$wp_customize->remove_control();
}
Esempio:
function customizer_init( WP_Customize_Manager $wp_customize ){
$section = 'mk_link_color_section';
$transport = 'refresh';
$setting = 'mk_link_color';
$wp_customize->add_section( $section, [
'title' => 'Colori',
'priority' => 200,
'description' => 'Colori del sito'
] );
$wp_customize->add_setting( $setting, [
'default' => '#000000',
'transport' => $transport
] );
$wp_customize->add_control(
new WP_Customize_Color_Control( $wp_customize, $setting, [
'label' => 'Colore link',
'section' => $section,
'settings' => $setting
] )
);
}
add_action( 'customize_register', 'customizer_init' );
Poi per stamparlo in template del tema:
get_theme_mod( 'mk_link_color' );
Un altro esempio, qui invece di un control default classe, si usa type che difenisce il tipo di campo, nel esempio รจ text, ma puo essere anche checkebox...:
function customizer_init( WP_Customize_Manager $wp_customize ){
$section = 'mk_titolo_sito_section';
$transport = 'refresh';
$setting = 'mk_titolo_sito';
$wp_customize->add_section( $section, [
'title' => 'Titolo del sito',
'priority' => 200,
'description' => 'Parametri del tema'
] );
$wp_customize->add_setting( $setting, [
'default' => 'Testo default',
'transport' => $transport
] );
$wp_customize->add_control( $setting,
[
'label' => 'Titolo del sito',
'type' => 'text',
'section' => $section,
'settings' => $setting
]
);
}
add_action( 'customize_register', 'customizer_init' );
per stamparlo nel template del tema: get_theme_mod( 'mk_titolo_sito' );
Classi control che si puo utilizzare:
WP_Customize_Color_Control
WP_Customize_Background_Position_Control
WP_Customize_Code_Editor_Control
WP_Customize_Date_Time_Control
WP_Customize_Theme_Control
Image:
WP_Customize_Image_Control
WP_Customize_Background_Image_Control
WP_Customize_Cropped_Image_Control
WP_Customize_Header_Image_Control
WP_Customize_Media_Control
WP_Customize_Upload_Control
Nav_Menu:
WP_Customize_Nav_Menu_Control
WP_Customize_Nav_Menu_Item_Control
WP_Customize_Nav_Menu_Location_Control
WP_Customize_Nav_Menu_Locations_Control
WP_Customize_Nav_Menu_Name_Control
WP_Customize_New_Menu_Control
WP_Customize_Nav_Menu_Auto_Add_Control
Widget:
WP_Widget_Area_Customize_Control
WP_Widget_Form_Customize_Control