Pregunta:
En apply_filters ()
apply_filters( $tag, $value, $var ... );
Tengo problemas para entender el $value
$var
y $var
. Leí el códice y parece que el $value
se puede modificar, $var
no, pero no he encontrado ningún ejemplo de esto en la naturaleza. Parece que se usa como una forma de pasar una variable. En cuyo caso, ¿cuál es la diferencia entre eso y $var
?
Respuesta:
Intente ver la función con mejores nombres:
apply_filters(
$filter_name, // used for add_filter( $filter_name, 'callback' );
$value_to_change, // the only variable whose value you can change
$context_1, // context
$context_2 // more context
);
Entonces, cuando esa función se llama como:
// wp-login.php line 94
apply_filters( 'login_body_class', $classes, $action );
Puedes usar …
add_filter( 'login_body_class', 'function_to_change_login_body_class', 10, 2 );
… Y obtener dos variables pasadas a esa función. Devuelve el primero, el segundo proporciona más contexto:
function function_to_change_login_body_class( $classes, $action )
{
if ( 'login' === $action )
$classes[] = 'foo';
if ( 'postpass' === $action )
$classes[] = 'bar';
return $classes;
}
Las variables adicionales están ahí para facilitar sus decisiones, no para cambiarlas también.