Advertisement
  1. Code
  2. WordPress

50 Filtri di WordPress: Una Introduzione ai Filtri

Scroll to top
Read Time: 6 min
This post is part of a series called 50 Filters of WordPress.
50 Filters of WordPress: The First 10 Filters

() translation by (you can also view the original English article)

WordPress è una piattaforma eccezionale e il content management sustem più diffuso nel mondo. Il motivo è la sua estensibilità. In questa serie di articoli impareremo a conoscere i filtri - uno dei modi migliori per estendere Wordpress.

Alla base di questa funzionalità troviamo gli hooks - ovvero filtri e azioni di WordPress. Senza gli hook, non potremmo veramente sfruttare l'estensibilità di Wordpress.

Questa serie di articoli è composta da sette parti, così suddivise:

  • definizione dei filtri di Wordpress e un'introduzione su come utilizzarli (l'articolo che state leggendo in questo momento),
  • cinque articoli in cui vedremo 50 filtri di Wordpress (10 per articolo) con relativi esempi
  • e un articolo di "riepilogo", a riassumere quanto trattato.

Esistono - letteralmente - centinaia di filtri nel core di Wordpress e questi 50 esempi sono solo una parte del tutto (circa il 10%), per cui è possibile che faremo delle aggiunte a questa lista se qualcuno di voi richiede o suggerisce esempi su nuovi filtri.

Detto questo, è il momento di cominciare!

Che cos'è un filtro di Wordpress?

Nel Codex, i filtri sono definiti come:

Filters are functions that WordPress passes data through, at certain points in execution, just before taking some action with the data. Filters sit between the database and the browser, and between the browser and the database; most input and output in WordPress passes through at least one filter. WordPress does some filtering by default, and your plugin can add its own filtering.

Quindi, in sostanza, il filtri sono funzioni che manipolano i dati del vostro sito prima che Wordpress li stampi a video. Un filtro è uno dei due tipi di hook presenti in WordPress, l'altro è rappresentato dalle actions che saranno argomento di un'altra serie di articoli.

Anche se l'argomento può sembrare complicato, filtri (e azioni) sono molto semplici da capire. Anche io ero un po' intimorito la prima volta che ho affrontato l'argomento, ma dopo aver scoperto quanto sono semplici, ho imparato a conoscere centinaia di filtri e azioni semplicemente sfogliando il Codex o analizzando il codice "core".

Farebbe sicuramente comodo anche a voi conoscere queste centinaia di filtri, ma prima dovete imparare ad usarli.

Usare i filtri in WordPress

Come ho detto, usare i filtri di Wordpress è piuttosto semplice. Basta conoscere una serie di funzioni di base e dovete sapere che cosa fa ogni singolo filtro. (In realtà la parte più complicata è imparare a conoscere tutti i filtri, ma come potete immaginare non è qualcosa che si fa in tutto in una volta - li imparete usandoli, quando ne avrete bisogno.) 

In questa sezione affronteremo quattro argomenti:

  1. Creare una funzione di filtraggio
  2. Aggangiarla ad un filtro
  3. Rimuovere una funzione da un filtro
  4. Creare un filtro tutto nostro

Creare una funzione ed agganciarla ad un filtro

Per manipolare i dati che ci vengono passati dal filtro, dovete creare una funzione che definisca come i dati verranno manipolati, e collegarla al filtro.

Facciamo finta di stare sviluppando un plugin che si occupa di rimuovere le vocali dai titoli dei post. Invece di pensarla come "questa funzione rimuove le consonanti dai titoli dei miei post", pensiamola come "agganciamo questa funzione (che rimuove le vocali) al filtro del titoli dei miei post".

Complicato? in realtà no. Nell'esempio che segue scriveremo il codice della funzione che rimuove le vocali da qualunque testo:

1
<?php
2
3
function remove_the_vowels( $title ) {
4
  $title = preg_replace( '/[aeiou]/i', '', $title );
5
	return $title;
6
}
7
8
?>

La funzione prende la stringa $title, rimuove le vocali, e la restituisce. Abbastanza semplice no? Ora facciamo il prossimo passo agganciandola ad un filtro:

1
<?php
2
3
function remove_the_vowels( $title ) {
4
	$title = preg_replace( '/[aeiou]/i', '', $title );
5
	return $title;
6
}
7
8
add_filter( 'the_title', 'remove_the_vowels' );
9
10
?>

Notato la nuova funzione? Analizziamo velocemente add_filter() :

1
<?php
2
3
add_filter( $tag, $function_to_add, $priority, $accepted_args );
4
5
?>
  • $tag (obbligatorio) - Il nome del filtro.
  • $function_to_add (obbligatorio) - Il nome della funzione da agganciare al filtro.
  • $priority (opzionale) - Un numero intero che indica quando la suddetta funzione viene eseguita. Il valore default è 10: La funzione verrà lanciata prima, se il valore è più basso, o dopo, se più alto.
  • $accepted_args (opzionale) - Un numero intero che definisce il numero di argomenti che il filtro accetta. Il valore default è 1.

Rimuovere un Filtro

Possiamo anche rimuovere delle funzioni da un filtro. Per farlo usiamo una semplice funzione chiamata remove_filter(). Vediamo come funziona:

1
<?php
2
3
remove_filter( $tag, $function_to_remove, $priority );
4
5
?>

I parametri sono quasi gli stessi di add_filter():

  • $tag (obbligatorio) - Il nome del filtro.
  • $function_to_remove (obbligatorio) - Il nome della funzione da rimuovere.
  • $priority (opzionale) - La priorità della funzione (definito originariamente quando la funzione è stata agganciata).

Esiste anche un'altra funzione chiamata remove_all_filters() che ha solo due parametri ($tag e $priority) in cui inserire il nome del filtro e la priorità. Come si intuisce dal nome, rimuove tutte le funzioni agganciate al filtro.

Creare i vostri filtri

Vi state chiedendo come vengono creati questi filtri? Con una speciale funzione chiamata apply_filters() che viene utilizzata in tutto il codice "core" per creare centinaia di filtri diversi. Naturalmente funziona anche al di fuori del "core", il che ci permette di creare filtri all'interno dei nostri temi e plugin.

vediamo come funziona:

1
<?php
2
3
apply_filters( $tag, $value, $var1, $var2 /* ...e così via... */ );
4
5
?>
  • $tag (obbligatorio) - il nome (hook) del vostro filtro.
  • $value (obbligatorio) - Il valore da passare alle funzioni del filtro agganciate tramite add_filter().
  • $var1, $var2 and so on (opzionale) - I parametri del vostro filtro (infiniti). Le funzioni all'interno del filtro possono usare questi parametri, ma non possono essere restituiti dalle stesse funzioni.

Per esempio immaginate di scrivere una funzione che restituisca una citazione famosa di Peter Griffin:

1
<?php
2
3
function peter_griffin_quote() {
4
	$quote = "The bird is the word.";
5
	return $quote;
6
}
7
8
?>
Se volete permettere ad altri di filtrare questa citazione (senza toccare il codice del vostro plugin), dovete usare la funzione apply_filters() come segue:
1
<?php
2
3
function peter_griffin_quote() {
4
	$quote = "The bird is the word.";
5
	return apply_filters( 'peter_griffin_quote', $quote );
6
}
7
8
?>
In questo modo, un altro sviluppatore che utilizzi il vostro plugin può giocare con i dati della vostra funzione così
1
<?php
2
3
function change_the_quote( $quote ) {
4
	$quote = str_replace( 'bird', 'nerd', $quote );
5
	return $quote;
6
}
7
8
add_filter( 'peter_griffin_quote', 'change_the_quote' );
9
10
?>

Ora, ogni volta che la funzione peter_griffin_quote() viene lanciata, la citazione di Peter apparit&avrave; leggermente modificata senza nessuna modifica al file del vostro plugin. Una passeggiata!

Se volete delle informazioni aggiuntive sull'argomento, dovreste dare un'occhiata all'ottimo tutorial di Pippin Williamson su Tuts+ Code: "Writing Extensible Plugins With Actions and Filters". In questo tutorial potrete imparare come creare filtri e azioni per i vostri plugin o temi.

Conclusioni

Più ci lavori, più i filtri sono divertenti. Ne esistono centinaia e impararli uno per uno vi avvicinerà passo per passo ad essere dei guru di Wordpress. Nel prossimo articolo di questa serie approfondiremo questi 10 filtri di Wordpress:

  1. login_errors
  2. comment_post_redirect
  3. allowed_redirect_hosts
  4. body_class
  5. locale
  6. sanitize_user
  7. the_content
  8. the_password_form
  9. the_terms
  10. wp_mail_from

Sono molto soddisfatto di questa serie di articoli e spero che vi piacciano quanto a me piace scriverli. Se pensate di potermi aiutare con i tutorial, suggerendo qualche altro filtro o chiedendo qualche esempio specifico, non esitate a scrivermi, o condividete la vostra idea con un commento più in basso.

E. se quanto letto davvero vi è piaciuto, non dimenticate di condividerlo!

Arrivederci al prossimo tutorial!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.