La maggior parte delle seguenti informazioni è disponibile nel Codice :
apply_filters
Le funzioni di callback associate all'hook del filtro $tagvengono invocate chiamando questa funzione. Questa funzione può essere utilizzata per creare un nuovo hook di filtro semplicemente chiamando questa funzione con il nome del nuovo hook specificato utilizzando il parametro $ tag.
$value = apply_filters( $tag, $value, $var_1, $var_2, ... );
In sostanza:
si utilizza apply_filtersper filtrare un dato $value, rispetto al valore stesso e anche $var_1tramite le variabili fornite facoltativamente $var_n.
add_filter
Agganciare una funzione a un'azione di filtro specifica.
add_filter( $tag, $function_to_add, $priority, $accepted_args );
In sostanza:
si utilizza add_filterper agganciare una funzione personalizzata all'azione filtro specificata ( $tag), che potrebbe essere stata generata in apply_filtersprecedenza (o era un'azione filtro incorporata o deriva da un plugin / tema).
Quindi, ecco un esempio
immaginario :
function print_initials( $name ) {
if ( ! is_string( $name ) ) {
return;
}
$fragments = explode( ' ', $name );
/**
* Filter wether to print initials in reverse order.
*
* @param bool $reverse Print initials in reverse order?
*/
if ( apply_filters( 'reverse_initials', FALSE ) ) {
$fragments = array_reverse( $fragments );
}
foreach ( $fragments as $f ) {
echo substr( $f, 0, 1 );
}
}
print_initials( 'Some Guy' ); // outputs: SG
add_filter( 'reverse_initials', '__return_true' );
print_initials( 'Some Guy' ); // outputs: GS
Ora, se chiamiamo semplicemente la nostra funzione così com'è, le iniziali vengono stampate da sinistra a destra, perché questo è ciò che abbiamo definito comportamento predefinito.
La seconda volta, otteniamo le iniziali in ordine inverso, perché la funzione filtro __return_true, che è agganciata alla nostra azione filtro, ritorna sempre TRUEe quindi le iniziali vengono emesse da destra a sinistra.