Choose language

🇬🇧English
🇮🇹Italiano
🇪🇸Español
🇫🇷Français
🇩🇪Deutsch
🇧🇷Português
🇯🇵日本語
🇷🇺Русский
Moduli Per chi Prezzi
Shop — Buy PRO
Dashboard LANGA Account
Docs
eNews

WordPress hooks e filtri: personalizzare senza modificare i file originali

16 Giu 2026

Non modificare mai un file che non è tuo: usa gli hook

La regola d'oro dello sviluppo WordPress: mai modificare direttamente i file di WordPress core, dei plugin, o del tema genitore. Ogni modifica diretta verrà sovrascritta al prossimo aggiornamento. La soluzione: gli hook (ganci). WordPress esegue centinaia di hook durante il caricamento di ogni pagina, e ogni hook è un punto dove puoi agganciare il tuo codice personalizzato senza toccare i file originali. Vuoi cambiare il titolo della pagina? C'è un filtro. Vuoi aggiungere codice nel footer? C'è un'azione. Vuoi modificare il comportamento di un plugin? Probabilmente c'è un hook per quello.

Action vs Filter: la differenza fondamentale

Action: fa qualcosa in un punto specifico

Un'action (azione) esegue del codice in un momento specifico del caricamento WordPress. wp_head → esegui codice nell'head HTML. wp_footer → esegui codice prima della chiusura del body. init → esegui codice all'avvio di WordPress. save_post → esegui codice quando un post viene salvato. L'action non modifica dati: fa qualcosa (invia un'email, scrive un log, aggiunge HTML). Sintassi: add_action('nome_hook', 'mia_funzione', priorità);

Filter: modifica un dato prima che venga usato

Un filter (filtro) prende un dato, lo modifica, e lo restituisce modificato. the_title → modifica il titolo del post prima della visualizzazione. the_content → modifica il contenuto prima della visualizzazione. wp_mail → modifica i parametri dell'email prima dell'invio. body_class → aggiungi classi CSS al body. Il filter riceve un valore, lo elabora, e DEVE restituire il valore (modificato o invariato). Sintassi: add_filter('nome_hook', 'mia_funzione', priorità, numero_argomenti);

Esempi pratici che risolvono problemi reali

Aggiungere codice tracking nell'head

Invece di modificare header.php: add_action('wp_head', function(){ echo 'il tuo codice tracking'; }); nel functions.php del child theme o in un mu-plugin. Il codice viene inserito nell'head di ogni pagina senza toccare il tema.

Personalizzare l'excerpt

L'excerpt di default è 55 parole. Per cambiarlo: add_filter('excerpt_length', function(){ return 30; }); Vuoi cambiare il "[...]" finale: add_filter('excerpt_more', function(){ return '... continua a leggere'; }); Due righe di codice, nessun file modificato.

Aggiungere campi al checkout WooCommerce

Invece di modificare i template WooCommerce: usa gli hook woocommerce_checkout_fields per aggiungere/rimuovere/modificare campi. I template si aggiornano con WooCommerce, il tuo codice resta intatto nel child theme.

Dove mettere il codice degli hook

Nel functions.php del child theme: per personalizzazioni specifiche del sito. In un mu-plugin (/wp-content/mu-plugins/mio-plugin.php): per funzionalità che devono restare attive indipendentemente dal tema. In un plugin custom: per funzionalità riusabili su più siti. LANGA Tools include un modulo Code Snippets che permette di aggiungere hook personalizzati dall'interfaccia admin senza editare file: scrivi lo snippet PHP, scegli dove eseguirlo (frontend, admin, ovunque), e attivalo/disattivalo con un toggle. Se lo snippet genera un errore: il modulo lo disattiva automaticamente per evitare di rompere il sito.

Domande frequenti

Come trovo gli hook disponibili in un plugin o tema?

Cerca nel codice sorgente do_action() e apply_filters(): ogni occorrenza è un hook utilizzabile. Plugin come Query Monitor mostrano tutti gli hook eseguiti in ogni pagina. La documentazione ufficiale WordPress elenca gli hook del core. Per i plugin: la documentazione del plugin (se esiste) o il codice sorgente.

Se due funzioni si agganciano allo stesso hook?

Vengono eseguite entrambe, nell'ordine di priorità. La priorità default è 10. Una funzione con priorità 5 viene eseguita prima di una con priorità 10. Se due funzioni hanno la stessa priorità: l'ordine dipende dall'ordine di registrazione. Per assicurarti che il tuo codice venga eseguito per ultimo (dopo tutti gli altri): usa una priorità alta (99 o 999).

Aaccount
LANGA GALAXY

Per continuare a leggere,
accedi al tuo account.

Il tuo account LANGA ti connette a tutta la Galaxy.

Articoli completi su tutti i blog Galaxy.

Un solo login, accesso ovunque.

Guadagna Leghe e sblocca contenuti premium.

Accedi →Registrati gratis