¿Qué son los filtros?
Filtros son funciones por las que WordPress pasa los datos, en ciertos puntos de la ejecución, justo antes de tomar alguna acción con los datos (como agregarlos a la base de datos o enviarlos a la pantalla del navegador). Los filtros se ubican entre la base de datos y el navegador (cuando WordPress genera páginas) y entre el navegador y la base de datos (cuando WordPress agrega nuevas publicaciones y comentarios a la base de datos); la mayoría de las entradas y salidas en WordPress pasan a través de al menos un filtro. WordPress realiza algunos filtros de forma predeterminada, y su complemento puede agregar su propio filtro.
Enganchar en un filtro
Para permitir que los usuarios cambien algunos datos específicos (un valor, la salida de una función, etc.), los enlaces se proporcionan a través de las funciones apply_filters
.
Estos enlaces de filtro incluyen el nombre (o etiqueta ) del filtro y al menos el nombre de la función que se va a utilizar para filtrar (es decir, modificar de alguna manera) los datos .
Para modificar el título de una publicación, puede usar the_title
filtro de gancho, 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 deben cambiar (es decir, el título de la publicación) y el segundo parámetro $id
es información adicional (en En este caso el 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 función add_filter
, 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 a su valor predeterminado respectivo (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 volver a hacer esto, debe especificar el parámetro de prioridad (que viene antes del número de argumentos).
Supongamos que queremos afectar solo el título de la publicación con el 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 determinado filtro, debe buscar dónde está definido (en este caso: aquí ).
Referencias :