Tengo problemas para poner la cabeza alrededor del $valuey $var. Leí el códice y parece que $valuese puede modificar, $varno, pero no he encontrado ningún ejemplo de esto en la naturaleza. Parece ser utilizado como una forma de pasar una variable. En cuyo caso, ¿cuál es la diferencia entre eso y el $var?
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 );
Si entiendo correctamente. ¿No agrego una variable para recopilar el valor devuelto de apply_filters ya que se aplica a $ value_to_change automáticamente?
r00tAcc3ss
@ r00tAcc3ss No ocurre nada automáticamente. Tiene que cambiar el valor en su devolución de llamada. También puede devolverlo sin cambios si lo desea, según el contexto.
fuxia
Oh si. Es decir, no tengo que aceptar el valor devuelto en otra variable y asignarlo a $ value. Eso está hecho, si cambio el valor de $ en la función enganchada y devuelto, "automáticamente".
r00tAcc3ss
11
¿Qué son los filtros?
Los filtros son funciones por las que WordPress pasa los datos, en ciertos puntos de la ejecución, justo antes de realizar alguna acción con los datos (como agregarlos a la base de datos o enviarlos a la pantalla del navegador). Los filtros se encuentran entre la base de datos y el navegador (cuando WordPress está generando páginas), y entre el navegador y la base de datos (cuando WordPress está agregando nuevas publicaciones y comentarios a la base de datos); La mayoría de las entradas y salidas en WordPress pasan por al menos un filtro. WordPress filtra un poco de forma predeterminada, y su complemento puede agregar su propio filtrado.
Engancharse a un filtro
Para permitir a los usuarios cambiar algunos datos específicos (un valor, la salida de una función, etc.), se proporcionan ganchos de filtro a través de apply_filtersfunciones.
Estos ganchos de filtro incluyen el nombre (o etiqueta ) del filtro y al menos el nombre de la función que se utilizará para filtrar (es decir, alterar de alguna manera) los datos.
Para alterar el título de una publicación, puede usar el the_titleenlace de filtro, que se define de la siguiente manera:
apply_filters('the_title', $title, $id );
Esto significa que el filtro tiene la etiqueta / nombre the_title, el primer parámetro $titleson los datos que se van a cambiar (es decir, el título de la publicación) y el segundo parámetro $ides información adicional (en este caso, la ID de la publicación).
Para mostrar el título de cada publicación en MAYÚSCULAS, por ejemplo, puede usar la siguiente línea:
add_filter('the_title','strtoupper');
Si echamos un vistazo a la add_filterfunción, vemos que se define de la siguiente manera:
Solo especificamos el primer y segundo parámetro (requerido), mientras que el tercer y cuarto parámetro se configuran con su respectivo valor predeterminado (es decir, 10y 1).
Un filtro más complejo
Si desea filtrar solo una determinada publicación , puede utilizar la información adicional (en el caso de este filtro: la ID). Para hacerlo, debe especificar el número de parámetros (que es 2 en este caso), y para hacerlo nuevamente, debe especificar el parámetro de prioridad (que precede al número de argumentos).
Supongamos que queremos afectar solo el título de la publicación con la ID 42, entonces se ve así:
add_filter('the_title','my_strtoupper',10,2);function my_strtoupper($title, $id){if(42=== $id)return strtoupper($title);return $title;}// function my_strtoupper
En este caso, tenemos que especificar los cuatro parámetros disponibles.
¿Qué parámetros tengo?
Para identificar el (número de) parámetros disponibles de un filtro determinado, debe buscar dónde está definido (en este caso: aquí ).
¡+1 para una respuesta completa y una clase impecable (buen formato de brochacho)!
bosco
Gracias, eso es muy completo, pero realmente no explica lo que estaba preguntando. p.ej. La diferencia entre la variable $ value y la variable $ var en el filtro.
r00tAcc3ss
Hm, diría que sí, pero ese es, por supuesto, mi sentimiento subjetivo. Sin embargo, agregaré información sobre el filtro y sus parámetros.
¿Qué son los filtros?
Engancharse a un filtro
Para permitir a los usuarios cambiar algunos datos específicos (un valor, la salida de una función, etc.), se proporcionan ganchos de filtro a través de
apply_filters
funciones.Estos ganchos de filtro incluyen el nombre (o etiqueta ) del filtro y al menos el nombre de la función que se utilizará para filtrar (es decir, alterar de alguna manera) los datos.
Para alterar el título de una publicación, puede usar el
the_title
enlace de filtro, que se define de la siguiente manera:Esto significa que el filtro tiene la etiqueta / nombre
the_title
, el primer parámetro$title
son los datos que se van a cambiar (es decir, el título de la publicación) y el segundo parámetro$id
es información adicional (en este caso, la ID de la publicación).Para mostrar el título de cada publicación en MAYÚSCULAS, por ejemplo, puede usar la siguiente línea:
Si echamos un vistazo a la
add_filter
función, vemos que se define de la siguiente manera:Solo especificamos el primer y segundo parámetro (requerido), mientras que el tercer y cuarto parámetro se configuran con su respectivo valor predeterminado (es decir,
10
y1
).Un filtro más complejo
Si desea filtrar solo una determinada publicación , puede utilizar la información adicional (en el caso de este filtro: la ID). Para hacerlo, debe especificar el número de parámetros (que es 2 en este caso), y para hacerlo nuevamente, debe especificar el parámetro de prioridad (que precede al número de argumentos).
Supongamos que queremos afectar solo el título de la publicación con la ID 42, entonces se ve así:
En este caso, tenemos que especificar los cuatro parámetros disponibles.
¿Qué parámetros tengo?
Para identificar el (número de) parámetros disponibles de un filtro determinado, debe buscar dónde está definido (en este caso: aquí ).
referencias :
apply_filters
funciónadd_filter
funciónfuente