Está en la página 1de 3

Ganchos de filtro o filter hooks

Los filtros o filter hooks de WordPress manipulan la información en un punto concreto de la


ejecución antes de que se muestre en la pantalla o se almacene en la base de datos.

Por ejemplo, puedes cambiar el título de una página antes de que salga en la pantalla del
usuario, añadir más contenido al título de un post, cambiar el texto de un botón, etc…

Al igual que con los action hooks, te voy a enseñar cuál es la estructura o sintaxis de un filter
hook:

add_filter (
$tag,
$function_to_add,
$priority = 10,
$accepted_args = 1
);

• $tag (requerido): El nombre de filtro con el que quieras trabajar.


• $function_to_add (requerido): El nombre de la función que se ejecutará cuando el
filtro se active.
• $priority (opcional): Se especifica el orden en el que se ejecutan las funciones que
están asociadas a ese gancho. Su valor por defecto es 10. Cuanto más pequeño es el
número, antes se ejecuta esa función. Si el valor es igual entre dos funciones, se
ejecutará antes la que se haya agregado primero al action hook.
• $accepted_args (opcional): Un número que indica la cantidad de parámetros que vas a
pasar a la función. Por defecto, es 1.

Realmente los action hooks y los filter hooks son muy similares y se utilizan de la misma forma,
aunque se usen para cosas diferentes:

• Los filter hooks reciben un parámetro de entrada que tú vas a modificar y devolver al
hook correspondiente.
• No se llaman con la función do_action(), como en el caso de los action hooks, se utiliza
apply_filters(); por lo que tendrás que localizar en el código de WordPress los puntos
en los que puedes engancharte al hook con esta función.
• No se referencia con add_action(); sino que se usa add_filter();
Ejemplos:
En este ejemplo vamos a a realizar un cambio en las publicaciones de nuestro blog.
Observemos la pagina blog de nuestro template donde tenemos varias publicaciones:

Veamos que tenemos un resumen de cada post con una cantidad de palabras predefinida que
finaliza con unos corchetes y unos puntos suspensivos […], esto se debe a que internamente
en el desarrollo de la plantilla se incluye la función the_excerp() de wordpress.

Ahora lo que haremos será crear un gancho de filtro para que donde sea que se aplique esta
funcion the_excerpt() en vez de aparecer […] aparezcan solo los puntos suspensivos sin el
corchete, debemos de tener en cuenta que como hacemos este pequeño cambio se pueden
hacer muchos mas.

Ahora vamos a nuestro archivo principal res-pruebas y vamos a escribir el siguiente código:

function atr_modificar_texto($texto){

//El texto de Read More… se va a sustituir por la cadena que devuelva


s en esta función
$texto="...";
return $texto;
}
add_filter('excerpt_more','atr_modificar_texto');

como podemos ver en la siguiente imagen el gancho de filtro con la función que hemos
desarrollado funciona correctamente.
Si quieres ver todos los filter hooks que existen y aprender a utilizarlos correctamente, te
recomiendo que visites la documentación oficial de WordPress:

https://codex.wordpress.org/Plugin_API/Filter_Reference

También podría gustarte