Il Theme Customizer è uno strumento che consente di aggiungere opzioni ai temi di WordPress. Si tratta di un set di API che, a partire dalla versione 3.4, permette di verificare le modifiche apportate alle impostazioni dei temi. Il Customizer fornisce un'interfaccia grafica, un vero e proprio editor WYSIWYG (What You See Is What You Get), a supporto di chi sviluppa temi.
La Theme Customization API dispone di numerose funzionalità, tra cui la possibilità di assegnare privilegi sui controlli a diversi gruppi di utenti, in modo che ogni gruppo possa modificare specifiche impostazioni.
Altra funzionalità riguarda la contestualizzazione dei controlli: il Customizer permette di visualizzare solo sezioni e controlli che risultano attivi nella pagina che si sta modificando. Ad esempio, nella sezione dei widget saranno visibili solo widget area che risultano attive sulla pagina corrente.
L'interfaccia è strutturata in un pannello principale (Panel), sezioni (Sections), e controlli (Controls). Il pannello è un contenitore di sezioni, che a loro volta sono contenitori di controlli. Ad ogni controllo corrisponde un'impostazione salvata nel database.
Per aggiungere nuove opzioni, è necessario ricorrere ai due hook customize_register
e wp_head
, il primo permette di aggiungere pannelli, sezioni, impostazioni e controlli, il secondo di aggiungere un nuovo foglio di stile per controllare l'aspetto del Customizer.
Personalizzare il Theme Customizer
Per aggiungere sezioni, impostazioni e controlli al Customizer, bisogna agganciare una funzione di callback all'hook customize_register
:
function seventyone_customize_register( $wp_customize ) {
// your code here
}
add_action( 'customize_register', 'seventyone_customize_register' );
La callback accetta come unico argomento l'oggetto $wp_customize
, che rende disponibili tutti i metodi necessari alla personalizzazione del Customizer:
Metodo | Descrizione |
---|---|
add_setting() |
Memorizza una nuova impostazione nel database |
add_section() |
Aggiunge una nuova sezione (gruppo di controlli) al Customizer |
add_control() |
Aggiunge un controllo HTML |
get_setting() |
Recupera un'impostazione dal database |
Per aggiungere un nuovo controllo, bisogna prima creare una nuova impostazione nel database, grazie al metodo add_setting()
e, se necessario, una nuova sezione tramite add_section()
. Non è sempre necessario creare una nuova sezione, WordPress dispone infatti di sei sezioni predefinite utilizzabili senza doverne creare di nuove. Si analizzi ad esempio il seguente codice:
function seventyone_customize_register( $wp_customize ) {
$wp_customize->add_setting( 'seventyone_header_color' , array(
'default' => '#555555',
'sanitize_callback' => 'sanitize_hex_color'
) );
$wp_customize->add_section( 'seventyone_header_section' , array(
'title' => __( 'Header', 'seventyone' ),
'priority' => 30
) );
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array(
'label' => __( 'Site Title Color', 'seventyone' ),
'section' => 'seventyone_header_section',
'settings' => 'seventyone_header_color'
) ) );
}
add_action( 'customize_register', 'seventyone_customize_register' );
Nel prossimo capitolo dedicato al Theme Customizer verranno analizzati nel dettaglio i tre metodi utilizzati nella funzione di callback.