WordPress mette a disposizione un buon numero di funzionalità per gestire i contenuti e comportamenti, in alcuni casi però potrebbe essere necessario estendere tali strumenti o i plugin che ne fanno uso con l’obiettivo di ottenere un miglior livello di personalizzazione.
Gli hooks (letteralmente “ganci”) di WordPress permettono di modificare il comportamento del Blog engine o di una sua estensione senza alterare il core dell’applicazione e i file che lo compongono.
Gli hooks funzionano in base ad un semplice meccanismo fondato sugli eventi. In pratica, nel momento in cui dovesse verificarsi un determinato evento a carico di un blog realizzato con WordPress, avrà luogo una specifica azione (o più azioni) in risposta a quest’ultimo.
Le azioni relative agli hooks sono in buona parte già previste dall’applicazione, ad esse sarà possibile “agganciare” nuove funzionalità; quindi, attraverso gli hooks si potranno anche implementare o reimplementare comportamenti già supportati dal Blog engine.
Esistono due tipologie di Hook:
- action hook;
- filter hook.
Un Action hook è un tipo particolare di hook che consente di gestire esecuzioni condizionate al raggiungimento di un determinato punto previsto per un evento; la risposta (e quindi l’esecuzione) definita attraverso un gancio, che potrebbe essere l’invio di un’email così come la visualizzazione di uno specifico contenuto, verrà quindi accodata a tale punto in modo da dar luogo ai comportamenti desiderati.
Esistono svariati eventi ricollegabili alle actions, come per esempio la sostituzione del tema corrente di un blog o la semplice messa on line di un testo; dal punto di vista formale le actions non sono altro che delle funzioni PHP che possono essere “agganciate” ad un evento tramite la funzione add_action(); per il suo utilizzo quest’ultima prevede la seguente sintassi:
add_action ( 'nome_gancio', 'nome_funzione', [priorità], [argomenti_accettati] );
Il nostro tema utilizza certamente gli hook di azione, ci sono chiamate familiari a wp_head e wp_footer nei template file header.php e footer.php sono hook di azione. Sono a disposizione degli sviluppatori per collegare e aggiungere elementi all’inizio di WordPress o al termine del caricamento. Ad esempio per aggiungere correttamente i codici di tracciamento di Google Analytics o Google Tag Manager, gli sviluppatori fanno uso degli hook wp_head e wp_footer in quanto così facendo il codice di tracciamento viene aggiunto in tutte le pagine nell’header e/o nel footer. Ora vediamo come si realizza un hook personalizzato!
Realizziamo il Nostro Hook
Supponiamo di voler aggiungere il codice di tracciamento di Google Analytics nell’header di ogni pagina agganciandoci all’hook wp_head. Il primo step da compiere è la scrittura della funzione PHP:
function mio_analytics() {
CODICE DI TRACCIAMENTO QUI
}
Ora che abbiamo creato la nostra funzione mio_analytics() la dobbiamo collegare all’hook wp_head attraverso la funzione add_actionche viene collocata prima della nostra funzione:
add_action('wp_head', 'mio_analytics');
con quel codice stiamo comunicando a add_action che vogliamo effettuare un’aggiunta a wp_head . Di seguito il codice completo da aggiungere nel file functions.php:
add_action( 'wp_head', 'mio_analytics' );
function mio_analytics() {
CODICE DI TRACCIAMENTO QUI
}
Che cosa abbiamo fatto? abbiamo indicato a WordPress di aggiungere, in ogni pagina, all’inizio del tema e al momento del caricamento della pagina, un codice di tracciamento per Google Analytics.