La mayoría de lo siguiente se puede encontrar en el Codex :
apply_filters
Las funciones de devolución de llamada asociadas al enlace de filtro $tag
se invocan llamando a esta función. Esta función se puede usar para crear un nuevo enlace de filtro simplemente llamando a esta función con el nombre del nuevo enlace especificado usando el parámetro $ tag.
$value = apply_filters( $tag, $value, $var_1, $var_2, ... );
En esencia:
Se utiliza apply_filters
para filtrar un determinado $value
- con respecto al valor en sí, así como variables opcionalmente proporcionados $var_1
a través $var_n
.
add_filter
Enganche una función a una acción de filtro específica.
add_filter( $tag, $function_to_add, $priority, $accepted_args );
En esencia: se
utiliza add_filter
para enganchar una función personalizada a la acción de filtro dada ( $tag
), que podría haber generado apply_filters
antes (o fue una acción de filtro incorporada o se deriva de un complemento / su tema).
Entonces, aquí hay un ejemplo
ficticio :
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
Ahora, si solo llamamos a nuestra función tal como está, las iniciales se imprimen de izquierda a derecha, porque esto es lo que definimos como comportamiento predeterminado.
La segunda vez, obtenemos las iniciales en orden inverso, porque la función de filtro __return_true
, que está enganchada a nuestra acción de filtro, siempre regresa TRUE
y, por lo tanto, hace que las iniciales se emitan de derecha a izquierda.