Que son los Hooks en Wordpress y cómo utilizarlos

Qué son los Hooks de WordPress

Ya sé, ya sé, Hook te suena a la película del Capitán Garfio, y bueno, algo tendrá que ver el nombre.

Un hook es un gancho o un anzuelo, pero… ¿y esto que tiene que ver con WordPress?

Lo que llamamos hooks son pequeños ‘ganchos’ en el código de WordPress, puntos concretos en el core de tu WordPress preparados para que puedas enlazar líneas de código.

De este modo, cuando necesitas hacer modificaciones en las funcionalidades de WordPress, no tienes que tocar el código fuente, tan sólo escribir el código y utilizar esos ganchos para introducirlo en la parte que quieras modificar.

¿Para qué quiero saber qué son los Hooks?

Bueno, por culturilla general no está mal… pero además de eso…

¿Qué te parece poder hacer tus propios temas en WordPress? ¿o incluso tus propios plugins?

De hecho, muchos plugins son totalmente prescindibles si sabes cómo utilizar esos hooks (y escribir las funciones, claro)

A lo mejor, puedes evitarte tener que cargar otro plugin más en tu wordpress, añadiendo unas pocas líneas de código en tu archivo functions que sólo se ejecutaran cuando corresponda hacerlo, merece la pena ¿no?

¿Dónde añado el código para los Hooks?

Sencillamente tendrás que introducir tu código en el archivo functions.php de tu tema hijo.

Tipos de Hooks

Hay dos tipos de Hooks, los llamados Action Hooks y los Filter Hooks.

Los Action Hooks ejecutan una acción al llegar a un punto del código de WordPress, estas acciones se añaden al código, estos códigos lo que hacen es que ejecutan la acción pero no devuelven ningún valor.

Es en plan, cuando pase esto, haz eso otro.

Los llamaremos utilizando la función add_action() esta función lleva dos parámetros, el primero es el nombre del Hook (la zona del código de WordPress en el que se llamará a la acción) y el segundo será el nombre de la función concreta que habremos creado.

Mira, un ejemplo lo tienes en el post sobre cómo modificar el footer en Genesis:

Ahí la llamada que hacíamos a la función era así:

add_action(‘genesis_footer’, ‘personalizar_footer’ );

O sea, que le estamos diciendo que donde tiene el hook genesis_footer (donde carga el pie de página por defecto de Genesis, vaya) que pase del código que tiene por defecto y en su lugar que ejecute el código que hemos introducido en la función personalizar_footer.

Los Filter Hooks o ganchos de filtro, al igual que los action hooks ejecutan un código en un punto concreto del código wordpress pero devolverán un valor.

La idea es que estos ganchos sirven para modificar parte de lo que vemos de wordpress.

A estos hooks los ejecutamos utilizando la función add_filter(), y al igual que con add_action(), utilizaremos dos parámetros, el nombre del hook y el de la función que realizará las modificaciones.

Vamos con un ejemplo, imagina que quieres que tu blog en lugar de ‘Leer más’ para leer el post completo diga, ‘Oh, yeah, quiero seguir leyendo’ (yo que sé, es un ejemplo…) Pues utilizarías este código:

Por una parte, añadirías la función

function modificar_link_leer_mas() {

             return ‘ Oh, yeah, quiero seguir leyendo ‘;

         }

Y luego la colocarías en el hook de filtro

add_filter( ‘the_content_more_link’, ‘modificar_link_leer_mas’ );     

¿Qué Hooks existen?

Vale, vale, ya sabemos qué tipos de hooks hay y cómo se utilizan, pero ¿cómo sabemos exactamente qué hook necesitamos utilizar?

Una opción de lo más cultural es leerte el código de WordPress o de tu tema de arriba abajo y ver qué opciones tienes, buscando las llamadas a esos ganchos a través de las funciones do_action (llamada a ganchos de acción) y apply_filter (llamada a ganchos de filtro)…

Peeero, hay alternativas como buscarlos a través del sitio Theme Hook Alliance, que clasifica los hooks o utilizar un plugin que puedes instalar para averiguar los hooks disponibles en tu código (existen plugins concretos para temas como Genesis, Woocommerce, etc).

Dicho esto, ten en cuenta que el plugin es para desarrollo, es decir no tiene sentido tenerlo funcionando en tu web, tan sólo instálalo para conocer cuáles son los hooks y una vez que lo sepas lo puedes eliminar.

Que son los Hooks en WordPress y cómo utilizarlos
Foto de Steve Johnson
Puedes compartir el post en: