La maggior parte delle seguenti informazioni è disponibile nel Codice :
apply_filters
Le funzioni di callback associate all'hook del filtro $tag
vengono 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_filters
per filtrare un dato $value
, rispetto al valore stesso e anche $var_1
tramite 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_filter
per agganciare una funzione personalizzata all'azione filtro specificata ( $tag
), che potrebbe essere stata generata in apply_filters
precedenza (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 TRUE
e quindi le iniziali vengono emesse da destra a sinistra.