Gli action hook permettono di lanciare una funzione in un punto specifico del codice php, durante il caricamento di una pagina oppure quando si verifica un particolare evento, ad esempio quando viene salvato un post. Con gli action hook è possibile modificare il comportamento del cms dall’esterno senza modificare i file principali del sistema. Gli action hook sono alla base del funzionamento dei plugin ma possono essere utilizzati anche nel file functions.php o in un file template. La creazione di un action hook avviene in due passi: 1) registrazione dell’hook 2) creazione di un’azione, cioè una funzione collegata all’hook

Come registrare un action hook

Per creare un nuovo hook bisogna iserire nel punto del codice desiderato la funzione

do_action( $nome_hook, $arg_a, $arg_b, $etc );

Il primo parametro è obbligatorio e definisce il nome dell’hook. Il numero di parametri aggiuntivi (opzionali) non è limitato.

Nel codice php di worpress è presente un gran numero di action hook già registrati. Un elenco parziale è disponibile in questa pagina

Un un caso semplice di action hook è ‘wp_head’ che viene generato dalla funzione wp_head().

function wp_head() {

   do_action( 'wp_head' );

}

Quando questo codice viene eseguido in wordpress (quindi ci troviamo all’interno di un template) vengono lanciate tutte le funzioni che abbiamo associato all’hook wp_head.

Collegare una funzione all’hook wp_head

Possiamo sfruttare l’hook wp_head per inserire un foglio di stile o uno script aggiuntivo (In realtà sarebbe meglio utilizzare funzioni apposite come wp_enqueue_style(). A questo scopo utilizziamo la funzione add_action( 'nome_hook', 'nome_funzione'); dove il primo parametro è il nome dell’hook e il secondo il nome della funzione da inserire.

add_action('wp_head','aggiungi_css');

function aggiungi_css()
{

$output="<style><link rel='stylesheet' id='custom-css'  href='http://sito-esempio/wp-content/themes/nome-tema/css/personale.css' type='text/css' media='all' /></style>";

echo $output;

}

  inStileWeb.com