¿Qué son los Hooks de WordPress?
Son un término genérico para referirnos a un evento que sucede en WordPress donde nosotros podemos agregar nuestro propio código o modificar lo que WordPress hace por defecto. Existen dos tipos de Hooks en WordPress, Actions y Filters.
Actions
Es un Hook que se dispara en un punto determinado durante la ejecución de WordPress y nos permite hacer algo en ese momento.
Por ejemplo en el Hook wp_enqueue_scripts
es donde nosotros aprovechamos para cargar los estilos y scripts de nuestro sitio.
Listado de los Action Hooks nativos de WordPress.
Filters
Es un Hook que nos permite manipular y siempre retornar un valor.
Por ejemplo cuando necesitamos establecer la longitud para el excerpt de un post lo hacemos con el filtro excerpt_length
.
Listado de los Filter Hooks nativos de WordPress.
Funciones para Filter Hooks
add_filter()
Esta función nos permite agregar nuestra propia función para un Filter Hook.
En este ejemplo atamos la función custom_excerpt_length
en el Filter Hook excerpt_length
para retornar el valor 20. Este valor está siendo utilizado por WordPress de la siguiente manera para establecer la longitud del excerpt de un post.
WordPress por default le está pasando un valor de 55 al filtro excerpt_length
. Si nosotros no hacemos nada en ese filtro por default la longitud será 55.
apply_filters()
Esta función permite modificar un valor que pasa a través de un filtro. Ejemplo:
Pepito pasa a través del filtro rocks_filter
Si no existe el filtro aún, el valor que se imprime es simplemente Pepito. Si lo dejamos así quiere decir que le estamos dando la oportunidad a otros desarrolladores de implementar su propio filtro con add_filter()
para modificar este valor.
Cuando implementamos el filtro rocks_filter
el valor que se imprime es Pepito Rocks!!!.
Es importante que cuando tu veas apply_filters( ‘filter_name’, array(‘color’ => ‘#333333’) );
te fijes en los argumentos que están pasando por ese filtro y los recibas de esa manera cuando estás creando tu filtro con add_filter()
.
remove_filter()
Quita una función que está atada a un Filter Hook:
Funciones para Action Hooks
add_action()
Permite ejecutar una función que atamos a un Action Hook. Por ejemplo cuando cargamos los estilos que utiliza un theme:
remove_action()
Quita una función que está atada a un Action Hook.
do_action()
Ejecuta una función que está atada a un Action Hook:
Con add_action()
podemos dar la opción a otros desarrolladores de implementar su propia acción de manera similar como hacemos con apply_filters()
.