¿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_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:
apply_filters( 'the_title', $title, $id );
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:
add_filter('the_title', 'strtoupper');
Si echamos un vistazo a la add_filter
función, vemos que se define de la siguiente manera:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
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
y 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í ).
referencias :