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:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <! 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:
1 2 3 4 5 6 7 8 9 | <?php add_action( 'wp_head' , 'inserisci_autore' ); function inserisci_autore() { echo '<META NAME=author CONTENT=”Andrea Tonin”>' . "\n" ; } ?> |
L’Action Hook è wp_head, quindi:
1 2 3 4 5 6 7 8 9 | <?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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?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 >