Hook può essere tradotto in italiano con la parola “Gancio”. Un Hook di WordPress è un gancio che ci permette di usufruire delle funzioni dei file core del CMS senza modificare il core stesso.
Se aggiungessimo delle funzioni modificando i file core (i file che costituiscono il cuore di WordPress), al primo aggiornamento di versione perderemo tutte le modifiche messe in opera in quanto i file core verranno sovrascritti.
Utilizzando i WordPress Hook possiamo scrivere il nostro codice in un file esterno e richiamare con gli Hook le funzioni del core. Al nuovo aggiornamento di WordPress verranno sostituiti solo i file core e il nostro codice sarà salvo!
Gli Hook sono utilizzati regolarmente per realizzare plugins e temi per WordPress.
Gli Hook si dividono in due famiglie, “Action Hook” e “Filter Hook”.
Gli Action Hook eseguono una condizione del tipo: “quando raggiungi questo punto, inserisci questo codice“. Il loro utilizzo è rivolto all’inserimento di nuovo codice all’interno delle pagine.
Un esempio pratico, supponiamo di voler aggiungere un – meta tag HTML – con il nostro nome come autore a tutte le pagine del nostro tema.
Vediamo il meta tag dove va inserito in una pagina HTML:
<!DOCTYPE html> <html> <head> <title>Titolo del documento</title> <META NAME=author CONTENT=”Andrea Tonin”> </head> <body> In contenuto del documento </body> </html>
Apriamo il file blog/wp-content/themes/miotema/functions.php e aggiungiamo:
<?php add_action('wp_head', 'inserisci_autore'); function inserisci_autore() { echo '<META NAME=author CONTENT=”Andrea Tonin”>' . "\n"; } ?>
L’Action Hook è wp_head, quindi:
<?php esegui funzione('quando viene caricato Hook wp_head', 'la mia funzione'); function la mia funzione() { echo '<META NAME=author CONTENT=”Andrea Tonin”>' . "\n"; } ?>
Ogni volta che viene caricato il tag HTML – head – viene aggiunto il meta tag specificato.
Da notare l’utilizzo alternato degli apici singoli ‘ e dei doppi apici ” per l’esecuzione corretta del comando – echo -.
Per un’ulteriore approfondimento vi rimando alla pagina ufficiale gli Action Hook: http://codex.wordpress.org/Plugin_API/Action_Reference >
I Filter Hook modificano l’output in un determinato punto.
Apriamo il file blog/wp-content/themes/miotema/functions.php e aggiungiamo:
<?php add_filter( 'the_content', 'inserisci_firma' ); function inserisci_firma( $content ) { if ( is_single() ) { $content .= '<div>Questo articolo è stato scritto da Andrea Tonin</div>' . "\n"; } ) return $content; } ?>
Il Filter Hook è the_content quindi:
Utilizza il Filter Hook – the_content – modifica l’output con la funzione – inserisci_firma -;
La funzione – inserici_firma – se si tratta di un articolo del blog – is_single – (ricordiamo che nel template l’aspetto degli articoli è definito in single.php), aggiungi al contenuto – .= – (è l’operatore per l’aggiunta dei contenuti), ‘Contenuto in HTML’. Se la condizione è falsa –return $content;– restituisci il contenuto originale senza l’aggiunta.
Per un’ulteriore approfondimento vi rimando alla pagina ufficiale dei Filter Hook: http://codex.wordpress.org/Plugin_API/Filter_Reference/the_content >