Problemas para comprender apply_filters ()

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.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım