Cosa sono i filtri?
I filtri sono funzioni attraverso le quali WordPress trasmette i dati, in determinati punti dell'esecuzione, appena prima di intraprendere qualche azione con i dati (come aggiungerli al database o inviarli alla schermata del browser). I filtri si trovano tra il database e il browser (quando WordPress genera pagine) e tra il browser e il database (quando WordPress aggiunge nuovi post e commenti al database); la maggior parte dell'input e dell'output in WordPress passa attraverso almeno un filtro. WordPress esegue alcuni filtri per impostazione predefinita e il plug-in può aggiungere il proprio filtro.
Collegarsi a un filtro
Per consentire agli utenti di modificare alcuni dati specifici (un valore, l'output di una funzione, ecc.), Gli hook di filtro sono forniti tramite apply_filters
funzioni.
Questi hook di filtro includono il nome (o tag ) del filtro e almeno il nome della funzione che deve essere usata per filtrare (cioè, alterare in qualche modo) i dati.
Per modificare il titolo di un post, puoi utilizzare l' the_title
hook del filtro, che è definito come segue:
apply_filters( 'the_title', $title, $id );
Ciò significa che il filtro ha il tag / nome the_title
, il primo parametro $title
sono i dati che devono essere modificati (cioè il titolo del post) e il secondo parametro $id
sono informazioni extra (in questo caso l'ID del post).
Per visualizzare il titolo di ogni post in MAIUSCOLO, ad esempio, è possibile utilizzare la seguente riga:
add_filter('the_title', 'strtoupper');
Se diamo un'occhiata alla add_filter
funzione, vediamo che è definita come segue:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Abbiamo specificato solo il primo e il secondo parametro (obbligatorio), mentre il terzo e il quarto parametro sono impostati sul rispettivo valore predefinito (ovvero, 10
e 1
).
Un filtro più complesso
Se vuoi filtrare solo un determinato post , puoi usare le informazioni extra (nel caso di questo filtro: l'ID). Per fare ciò, devi specificare il numero di parametri (che è 2 in questo caso), e per farlo di nuovo, devi specificare il parametro di priorità (che precede il numero di argomenti).
Supponiamo di voler influenzare solo il titolo del post con l'ID 42, quindi appare così:
add_filter('the_title', 'my_strtoupper', 10, 2);
function my_strtoupper($title, $id) {
if (42 === $id) return strtoupper($title);
return $title;
} // function my_strtoupper
In questo caso, dobbiamo specificare tutti e quattro i parametri disponibili.
Quali parametri ho?
Per identificare il (numero di) parametri disponibili di un determinato filtro, devi cercare dove è definito (in questo caso: qui ).
Riferimenti :