Schema che illustra come funzionano gli hook di WordPress, azioni e filtri

Guida agli Hook di WordPress: azioni e filtri spiegati bene

Indice dell’articolo Chi sviluppa con WordPress prima o poi inciampa in: action e filter. Sono la spina dorsale della personalizzazione di WordPress: permettono di aggiungere, modificare o rimuovere funzionalità senza toccare il core. Indice dei contenuti Cosa sono gli hook? Un hook è un gancio che WordPress mette a disposizione in vari punti del suo…

Indice dell’articolo

Indice dei contenuti

  1. Introduzione agli Hook di WordPress
  2. Cosa sono gli hook: azioni e filtri
  3. Come funziona add_action
  4. Come funziona add_filter
  5. Esempi pratici di azioni
  6. Esempi pratici di filtri
  7. Creare i propri hook personalizzati
    • Azioni custom
    • Filtri custom
  8. Differenza tra azioni e filtri

Cosa sono gli hook?

Gli hook si dividono in due grandi famiglie:

  1. Azioni (do_action)
    Ti permettono di eseguire codice aggiuntivo in un preciso momento.
    Esempio: aggiungere un campo personalizzato al form di creazione di una categoria.
  2. Filtri (apply_filters)
    Ti permettono di modificare un valore prima che venga usato o mostrato.
    Esempio: cambiare il titolo di un post prima della stampa.

add_action: attaccare funzioni alle azioni

  • $hook_name → il nome dell’azione (es. init, wp_footer, category_add_form_fields).
  • $callback → la funzione da eseguire.

$hook_name

È semplicemente una stringa che identifica un punto preciso del flusso di WordPress.

Può essere:

  • Un hook core di WordPress (già pronto):
    • init → viene eseguito all’inizio, quando WordPress ha caricato quasi tutto.
    • wp_footer → viene eseguito subito prima della chiusura del tag </body>.
    • category_add_form_fields → viene eseguito nel form di creazione di una categoria in admin.
  • Un hook personalizzato che puoi creare tu stesso in un tema o plugin, usando do_action (per azioni) o apply_filters (per filtri).

Poi lo richiami con:

$callback

È il nome della funzione (o di un metodo) che verrà chiamata quando scatta l’hook. Esempio base:

Puoi passare come callback:

  • Una funzione semplice (come sopra).
  • Una funzione anonima (closure):

Un metodo di classe:

$priority

Quando più funzioni sono agganciate allo stesso hook, WordPress deve decidere in che ordine eseguirle.

  • Di default, tutte le funzioni hanno priorità 10.
  • Un numero più basso significa che la funzione viene eseguita prima.
  • Un numero più alto significa che viene eseguita dopo.

$accepted_args

Alcuni hook passano dei parametri alla tua funzione callback. Con $accepted_args indichi a WordPress quanti di questi parametri vuoi ricevere.

Esempio con un filtro:

Se invece l’hook passa più valori, puoi decidere quanti accettarne.

  • Se metti $accepted_args = 1, riceverai solo il primo argomento, anche se l’hook ne manda 3.
  • Se metti $accepted_args = 2, ricevi i primi due. E così via.

Azioni comuni da conoscere

  • save_post → intercettare il salvataggio di un post.
  • init → uno dei più usati, perfetto per registrare custom post type o tassonomie.
  • wp_enqueue_scripts → usato per caricare CSS e JS.
  • admin_menu → aggiungere voci di menu nell’area admin.

add_filter: modificare valori al volo

Differenza: la funzione callback deve restituire (return) un valore, perché WordPress si aspetta di ricevere indietro la variabile modificata.

Esempio pratico:

Filtri comuni da conoscere

  • the_content → modifica il contenuto dei post e delle pagine.
  • the_title → modifica i titoli dei post.
  • excerpt_more → cambia il testo “Leggi tutto” degli estratti.
  • upload_mimes → aggiunge nuovi tipi di file caricabili.

Creare i propri hook

Action personalizzata

E in un altro file:

Filter personalizzata

E in un altro file:

Azioni vs Filtri: la differenza chiave

Ricordati: se usi un filtro e non ritorni niente, spezzi il flusso di WordPress