WordPress add_filter vs funzioni add_action, le basi.

Pubblicato: 2021-08-24

Divulgazione: questo post contiene link di affiliazione. Potrei ricevere un compenso quando fai clic sui collegamenti ai prodotti in questo post. Per una spiegazione della mia politica pubblicitaria, visita questa pagina . Grazie per aver letto!

Contenuti

  • Quali sono le funzioni add_filter e add_action di WordPress?
  • Quindi, cos'è esattamente un "Hook" in WordPress?
  • Qual è la differenza tra hook, filtri e azioni?
  • Qual è la differenza tra do_action e add_action in WordPress?
  • Qual è la differenza tra Action Hook e Filter Hook?
  • Cosa fanno i filtri in WordPress?
  • Cosa fanno le azioni in WordPress?
  • Posso usare un add_action prima di add_filter quando modifico un plugin di WordPress?
  • Quindi qual è la vera differenza tra gli hook add_filter e gli hook add_action in WordPress?

Quali sono le funzioni add_filter e add_action di WordPress?

Hai mai avuto un plugin o un tema che sarebbe perfetto se potessi apportare solo una o due modifiche? Tuttavia, queste due modifiche richiederanno solo l'aggiunta di un po' di codice, forse anche di uno shortcode.

Ma prima di farlo, devi comprendere i concetti di base di add_filter vs add_action, le differenze e come funzionano in WordPress prima di trasformare un plugin o un tema quasi perfettamente codificato in un pasticcio completo.

Un "add_action" in WordPress è ciò che usi per creare un "hook" trigger. Quando succede qualcosa, allora fai qualcos'altro.

Un "add_filter" viene utilizzato per "agganciare" i dati, ovvero modificare/sostituire. Ad esempio, dove c'è [some-code], cambialo in some-other-expanded-code.

Il "gancio" è una "funzione" o un "metodo" per un filtro o un'azione specifici. Maggiori informazioni sui "ganci" di seguito.

WordPress offre filtri hook per consentire ai plugin di modificare vari tipi di dati interni durante il suo runtime. Un plug-in può modificare i dati associando un callback a un hook di filtro. Quando il filtro viene applicato successivamente, ogni callback associato viene eseguito in ordine di priorità e viene data l'opportunità di modificare un valore restituendo un nuovo valore.

  • Le azioni sono quelle funzioni PHP che eseguono l'output.
  • I filtri sono quelle funzioni PHP che restituiscono l'output.

Possiamo estendere qualsiasi plugin che utilizzi le azioni e i filtri senza modificare il loro codice. Aggiungendo filtri e azioni nel nostro tema o plugin. Entriamo più nel dettaglio di come funzionano in WordPress.

Quindi, cos'è esattamente un "Hook" in WordPress?

Gli hook sono un modo in cui un pezzo di codice può interagire/modificare un altro pezzo di codice in punti specifici e predefiniti. Costituiscono la base per il modo in cui plugin e temi interagiscono con WordPress Core, ma sono anche ampiamente utilizzati dallo stesso WordPress Core.

Esistono due tipi di hook: Azioni e Filtri. Per utilizzare entrambi, è necessario scrivere una funzione personalizzata nota come " Richiamata ", quindi registrarla con un hook di WordPress per un'azione o un filtro specifico. Fonte : WordPress.org .

Qual è la differenza tra hook, filtri e azioni?

Come accennato in precedenza, "ganci" è fondamentalmente il nome collettivo di filtri e azioni. Entrambi hanno lo scopo di modificare il normale comportamento delle funzioni.

Parlando da un punto di vista programmatico, non c'è una grande differenza, come puoi vedere dal fatto che nel codice sorgente di WordPress aggiungere un'"azione" equivale ad aggiungere un "filtro".

La differenza sta nel modo in cui vengono utilizzati. Si utilizza un'"azione" per modificare completamente il comportamento di una funzione o per aggiungere qualcosa a una funzione esistente.

Si utilizza un "filtro" per modificare il risultato di una funzione o di una variabile.

Qual è la differenza tra do_action e add_action in WordPress?

Un "do_action" registra un "action hook" mentre "add_action" aggiunge una funzione di callback all'hook registrato.

Qual è la differenza tra Action Hook e Filter Hook?

Ganci d'azione

Gli "Actions Hooks" sono destinati all'uso quando il core di WordPress o alcuni plugin o temi ti danno l'opportunità di inserire il tuo codice a un certo punto all'interno del loro per eseguire una specifica attività o "azione".

Ganci per filtri

I "Filter Hooks" si comportano in modo molto simile agli "Action Hook", ma il loro uso previsto è quello di ricevere un valore e potenzialmente restituire una versione modificata del valore.

Un “Filter Hook” può anche essere usato proprio come un “Action Hook”, cioè per modificare una variabile globale o generare dell'HTML, supponendo che sia quello che devi fare quando l'hook viene chiamato.

Cosa fanno i filtri in WordPress?

Un "filtro" prende le informazioni che riceve, le modifica e le restituisce. In altre parole, filtra qualcosa e lo restituisce al gancio per un ulteriore utilizzo.

Pertanto, un filtro viene utilizzato per modificare qualcosa in un modo specifico in modo che la modifica venga quindi utilizzata dal codice in un secondo momento.

Cosa fanno le azioni in WordPress?

Un'"azione" prende le informazioni che riceve, esegue tutte le istruzioni fornite nella sua codifica, quindi non restituisce nulla. Fondamentalmente, agisce su qualcosa e poi esce, non restituendo nulla all'hook chiamante.

Un'azione interrompe il flusso di codice per eseguire qualcosa, quindi torna al flusso normale senza modificare nulla.

Quindi, dove i "filtri" sono insiemi di parametri o istruzioni, le "azioni" sono l'esecuzione di istruzioni.

Posso usare un add_action prima di add_filter quando modifico un plugin di WordPress?

Fondamentalmente non importa quale sia l'ordine in cui usi add_action() e add_filter().

Ciò che importa è l'ordine in cui vengono chiamati i corrispondenti do_action() e apply_filters().

Quindi, se "apply_filters", ad esempio ('wp_insert_post_data') viene eseguito prima di "do_action"('save_post'), allora non funzionerà. Dovrai pensare a un altro modo per ottenere i risultati che cerchi.

Quindi qual è la vera differenza tra gli hook add_filter e gli hook add_action in WordPress?

In realtà i "Filter Hooks" sono praticamente un superset di "Action Hooks". I "Filter Hooks" possono fare tutto ciò che gli "Action Hooks" possono fare e un po' di più. Sebbene lo sviluppatore non abbia la responsabilità di restituire un valore con un "Action Hook" che fa con un "Filter Hook".

I "Filter hook" definiscono sostanzialmente i parametri di un'attività, mentre gli "Action hook" eseguono le attività. Per ulteriori informazioni sulle differenze tra hook "add_filter" e hook "add_action", consulta questa documentazione ufficiale di WordPress nella sezione sviluppatori su WordPress.org.