Gli hook di WordPress rappresentano una potente funzione che consente di intervenire sui processi del sito senza modificare i file del core. Un hook (o gancio) è un punto di aggancio che può essere utilizzato per eseguire azioni (action hook) o applicare filtri (filter hook) in modo strategico. Questa tecnica permette agli sviluppatori di estendere, personalizzare o modificare le funzioni di WordPress in modo sicuro e senza rischiare di compromettere l’integrità del core.

Conoscere e padroneggiare glii hook WordPress è fondamentale per chiunque utilizzi la piattaforma, soprattutto per chi vuole creare funzioni avanzate o adattare le impostazioni predefinite di temi e plugin. Gli action hook consentono di aggiungere nuove funzionalità o eseguire codice in punti specifici del flusso di WordPress, come ad esempio al caricamento di una pagina o alla pubblicazione di un post.

D’altra parte, i filter hook permettono di modificare i dati già elaborati dal sistema, come il contenuto di un post o il titolo di una pagina, prima che vengano visualizzati dall’utente. Entrambi i tipi di hook possono essere utilizzati per personalizzare l’esperienza utente, ottimizzare le prestazioni del sito e integrare funzionalità avanzate senza dover toccare il codice sorgente del core di WordPress.

In sintesi, imparare a utilizzare correttamente gli hook WordPress significa avere il pieno controllo su come e quando eseguire azioni specifiche all’interno del sito, garantendo al contempo una struttura solida e facilmente aggiornabile.

Scopo dei WordPress Hooks

Lo scopo principale degli hook WordPress è eseguire automaticamente una funzione. Questa tecnica ha la possibilità di modificare, estendere o limitare la funzionalità di temi e/o plugin.

Ecco un esempio di hook WordPress:

function mytheme_enqueue_script() 
{wp_enqueue_script( 'my-custom-js', 'custom.js', false );}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_script' );

L’esempio sopra mostra che l’hook è stato creato per connettere la funzione mytheme_enqueue_script con l’ azione wp_enqueue_scripts. Questo hook attiva una nuova azione sul tuo sito, pertanto viene chiamato action hook.

Gli hook vengono spesso utilizzati per creare componenti plugin di un’applicazione. Non viene utilizzato solo nei sistemi di gestione dei contenuti (CMS) come WordPress, ma viene anche comunemente utilizzato nei siti di e-commerce e intranet all’interno di un’azienda.

Inoltre, come detto sopra, i ganci sono divisi in due categorie: action e WordPress filter. L’action hook viene utilizzato per aggiungere un processo, mentre le funzioni di filter hook per cambiare o modificare il valore di un processo.

Come utilizzare gli Hook di WordPress?

L’uso dei WordPress hooks richiede un po’ di conoscenza di HTML e PHP ma anche se sei un principiante assoluto, la creazione di action e filter hooks non è così difficile come potresti pensare.

Devi solo andare alla pagina dei post, quindi passare all’editor di testo. Quando sei lì, puoi incollare i ganci che hai copiato da altri siti o creato tu stesso.

Creazione di un Action Hook WordPress

Per aggiungere un action hook, è necessario attivare la funzione add_action () nel plugin WordPress. Questa funzione può essere attivata scrivendo i seguenti pattern nel tuo file functions.php:

add_action(the 'function name of target_hook', 'Il_nome_della_funzione_che_vuoi_utilizzare' ,'priority_scale')

Come puoi vedere, gli hooks utilizzano una scala di priorità per funzionare correttamente. Questa scala è un valore ordinale automatico basato su una scala da 1 a 999. Definisce la precedenza dell’ordine per le funzioni associate a quel particolare hook.

Un valore di priorità più basso indica che la funzione verrà eseguita prima, mentre quella con un valore più alto verrà eseguita successivamente. La scala mostrerà la sequenza di output delle funzioni installate quando si usano gli stessi target_hooks .

Il valore predefinito di priority_scale è 10. È possibile disporre la scala in base al numero di target_hooks .

Ecco un esempio di action hook:

<?php
add_action( 'wp_print_footer_scripts', 'creativemotions_custom_footer_scripts' );
function webagency_custom_footer_scripts(){
?>
<script>//fill the footer scripts right here</script>
<?php
}
?>

Nota il modello nell’esempio sopra:

  1. <?php è dove si mette in funzione l’hook
  2. add_action è il comando per creare l’action hook
  3. wp_print_footer_scripts è il target_hook che si collega a una nuova funzione
  4. Creativemotions_custom_footer_scripts è la funzione installata e collegata a target_hook
  5. <script> rappresenta il testo che si desidera mostrare su target_hook (in questo caso, è wp_print_footer_scripts )

Creazione di un Filter WordPress

È possibile creare un filter hook utilizzando la funzione apply_filters () . Il filter hook viene utilizzato per modificare, filtrare o sostituire un valore con uno nuovo.

Proprio come l’utilizzo di un action hook, ha anche una funzione che filtra un valore con le funzioni di filter hook associate ( apply_filter ).

Inoltre, ha la funzione di aggiungere un hook filter da associare a un’altra funzione ( add_filter ).

Ecco un esempio di filter hook:

$score = 100;
echo "Il punteggio attuale è : ". apply_filters( 'change_score', $score );
  1. $score = 100 è il valore del punteggio iniziale
  2. echo “Il punteggio attuale è:” rappresenta lo script che stai mostrando
  3. apply_filters è il comando per creare un filter hook
  4. ‘change_score’,  $score è la funzione da filtrare

Questo è il filtro:

add_filter( 'change_score', 'function_change_score' );
function function_change_score( $score ){
? $score+=100;
? return $score;
}
  • Add_filter è stato creato per collegare il filter hook con una nuova funzione
  • ‘Change_score’ è l’hook di destinazione che verrà modificato
  • ‘Function_change_score‘ è una nuova funzione che influenzerà il valore iniziale
  • ? $score+ =100; è il codice per aggiungere valore al valore iniziale ($score)
  • ? return $score; è il codice per mostrare il nuovo valore alla fine

Il risultato dovrebbe apparire così:

Current score: 200

Azioni e filtri di sgancio

Se vuoi disabilitare il comando da add_action () o add_filter () nel tuo codice WordPress, puoi usare remove_action () e remove_filter () .

Questi codici sono sostanzialmente un modo per escludere determinate azioni o funzioni di filtro. Questa operazione ti consente ad esempio di modificare un plugin che ha troppi hook inutili che potrebbero interrompere l’ottimizzazione del tuo sito.

In questo momento, potresti chiederti questo; “Perché non eliminare semplicemente questi codici non necessari?”

Bene, è certamente un’opzione praticabile se lo fai su codice scritto da te.

Su WordPress però, lavori spesso con plugin o temi di qualcun altro, rischi di commettere un errore fatale se elimini le righe sbagliate.

Ecco un esempio di remove_action () in WordPress:

remove_action( 'wp_print_footer_scripts', 'creativemotions_custom_footer_scripts', 11 );
add_action( 'wp_print_footer_scripts', 'creativemotions_custom_footer_scripts_theme', 11 );
function creativemotions_custom_footer_scripts_theme()
{
?>
<script>//example of output by theme</script>
<?php
}

L’esempio sopra mostra che remove_action viene utilizzato per eliminare gli script piè di pagina predefiniti di WordPress e sostituirli con il tema degli script piè di pagina personalizzati di Creativemotions.

Questo comando è applicabile a tutti i tipi di action hooks in WordPress.

Inoltre, ecco un esempio di remove_filter:

remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
}

L’esempio sopra mostra come disattivare wp_staticize_emoji_for_email che converte gli emoji in immagini statiche.

Quindi li sostituisce con disable_emojis_tinymce che disattiverà la funzione emoji in WordPress (è noto che le emoji rallentano il sito perché effettuano una richiesta HTTP aggiuntiva).

Inoltre, puoi anche usare il comando remove_filter per disabilitare più filtri in una sequenza. Ecco un esempio:

function disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
add_action( 'init', 'disable_emojis' );
}

Il codice sopra ha lo scopo di eliminare completamente la funzione emoji in WordPress. Illustra chiaramente che non ci sono limiti al numero di comandi remove_filter che puoi incorporare in functions.php .

Esempi pratici

Come accennato in precedenza, ci sono molti hook che puoi usare per creare funzioni WordPress personalizzate. Qui ce ne sono un po:

admin_post_thumbnail_size

Questo filter hook visualizza un’immagine in miniatura del tuo post in Immagine in evidenza. Ci sono tre parametri collegati alle funzioni: $size, $thumbnail_id e $post .

L’hook dovrebbe apparire così:

$size = apply_filters( 'admin_post_thumbnail_size', $size, $thumbnail_id, $post );

Tieni presente che il parametro $size può essere modificato in base alle tue esigenze. Se desideri ad esempio impostare la dimensione della miniatura su 240 x 240 pixel, puoi scrivere questo codice:

$size = apply_filters( 'admin_post_thumbnail_size', 240, $thumbnail_id, $post);

Puoi anche impostare una dimensione personalizzata per la tua miniatura aggiungendo la funzione array (). Il codice sarà simile al seguente:

$size = apply_filters( 'admin_post_thumbnail_size', array(240, 400), $thumbnail_id, $post);

La funzione array () imposta la miniatura per essere visualizzata a 240 x 400 pixel. Dovresti trovare la dimensione migliore che si adatta perfettamente alla tua pagina.

after_password_reset

Questo action hook WordPress viene attivato quando un utente reimposta la propria password. L’hook è costituito da due parametri; $user e $new_pass.

L’hook dovrebbe apparire così:

do_action( 'after_password_reset', $user, $new_pass );

customize_loaded_components

Questo hook funge da filtro per escludere alcuni componenti di WordPress dal suo processo principale. Quelle sono le funzioni che funzionano sui file core, come wp-activate.php , wp-config-sample.php o wp-settings.php . Mentre il componente è una raccolta di funzionalità su WordPress che rappresenta una particolare funzione nel widget.

E’ importante notare che customize_loaded_components non può essere aggiunto in un tema poiché viene attivato solo durante la fase di “caricamento dei plugin”.

L’hook è costituito da due parametri: $components e $this. Dovrebbe essere scritto così:

$components = apply_filters( 'customize_loaded_components', array( 'widgets', 'nav_menus' ), $this );

Il parametro $components è un batch di funzioni principali da caricare, mentre $this si riferisce all’oggetto nella classe esistente.

È possibile personalizzare la funzione array () per determinare quali componenti escludere. L’esempio sopra mostra che widget e nav_menus sono i componenti esclusi dal processo principale.

Conclusione – Come Utilizzare gli Hook WordPress per Potenziare il Tuo Sito

Per concludere, gli hook di WordPress rappresentano uno strumento essenziale per personalizzare il funzionamento del tuo sito senza alterare il core di WordPress. Gli hook permettono di inserire funzioni personalizzate o disabilitare processi specifici, offrendo un livello di controllo avanzato sulla gestione del codice. Questa metodologia è particolarmente utile per gli sviluppatori che desiderano estendere le funzionalità del sito senza compromettere gli aggiornamenti o l’integrità del sistema.

Gli hook WordPress possono essere suddivisi in due categorie principali: action hook e filter hook. Entrambi sono utilizzati per eseguire funzioni specifiche, ma in modi diversi. Gli action hook consentono di eseguire una funzione in momenti particolari del ciclo di esecuzione di WordPress, come durante il caricamento di una pagina o la pubblicazione di un post. Questo tipo di hook è ideale per aggiungere funzionalità completamente nuove al sito o eseguire script personalizzati in base a eventi specifici.

D’altra parte, i filter hook sono utilizzati per modificare dati già elaborati prima che vengano visualizzati sul sito. Questo approccio consente di alterare il contenuto dei post, i titoli, le immagini o qualsiasi altro elemento dinamico, senza dover riscrivere il codice sorgente. Utilizzando i filter hook, è possibile implementare modifiche sottili ma strategiche, mantenendo intatta la struttura del sito.

Infine, sperimentare con i vari hook WordPress ti permette di acquisire una padronanza maggiore nella gestione delle funzioni del sito. Integrare action e filter hook non solo migliora la personalizzazione del sito, ma consente anche di ottimizzare le prestazioni e di mantenere un codice pulito e organizzato. Inizia a utilizzare gli hook in WordPress per ottenere un controllo avanzato e sfruttare al massimo le potenzialità del CMS.

Hook WordPress: Domande Frequenti e Risposte Utili

Cosa sono gli Hook WordPress e come funzionano?

Gli hook WordPress sono punti strategici nel codice che consentono di eseguire azioni o applicare filtri senza modificare il core. Gli action hook eseguono funzioni in momenti specifici, come il caricamento di una pagina o la pubblicazione di un post. I filter hook, invece, modificano il contenuto già elaborato prima che venga visualizzato sul sito. Questa struttura rende gli hook essenziali per personalizzare funzioni senza compromettere la stabilità del CMS.

Qual è la differenza tra Action Hook e Filter Hook in WordPress?

La principale differenza tra action hook e filter hook risiede nella loro funzione. Gli action hook consentono di eseguire codice aggiuntivo in momenti specifici, come l’aggiornamento di un post. I filter hook, invece, agiscono sui dati già elaborati, consentendo di modificare elementi come il titolo, il contenuto o i metadati prima che vengano visualizzati. Entrambi i tipi di hook sono fondamentali per personalizzare e ottimizzare il sito WordPress.

Come creare un Action Hook in WordPress?

Gli action hook in WordPress consentono di eseguire funzioni personalizzate in momenti specifici del flusso di esecuzione del sito. Puoi utilizzarli per aggiungere elementi dinamici come notifiche, script o widget in aree strategiche, come il footer o la sezione admin. Questi hook offrono un controllo avanzato sul comportamento del sito senza modificare il core di WordPress, garantendo aggiornamenti sicuri e un codice più organizzato. Utilizzare gli action hook è essenziale per implementare funzionalità personalizzate e ottimizzare l’esperienza utente, mantenendo un sito scalabile e facilmente gestibile.

Come utilizzare i Filter Hook in WordPress?

I filter hook WordPress consentono di modificare il contenuto di post, pagine o elementi dinamici prima che vengano visualizzati sul sito. Grazie ai filter hook, è possibile alterare testi, immagini o metadati in modo strategico, mantenendo intatto il codice sorgente del tema o del plugin. Questa tecnica è particolarmente utile per personalizzare elementi specifici del sito senza dover intervenire sui file principali, garantendo un approccio sicuro e facilmente gestibile per implementare modifiche mirate. Utilizzare i filter hook è essenziale per chi desidera ottimizzare i contenuti e mantenere un codice pulito e ben strutturato.

Quali sono i migliori Hook WordPress per ottimizzare un sito?

Alcuni dei migliori hook WordPress per ottimizzare le prestazioni del sito includono:
wp_enqueue_scripts – per caricare script e CSS in modo ottimizzato.
wp_footer – per eseguire codice personalizzato nel footer.
the_content – per modificare il contenuto dei post.
admin_init – per personalizzare l’area admin.
wp_head – per inserire codice specifico nel <head> del sito.
Utilizzare strategicamente questi hook permette di ottimizzare il caricamento del sito, migliorare la SEO e implementare nuove funzionalità senza rischiare di compromettere il core di WordPress.