Los hooks (ganchos) son una de las herramientas más potentes y versátiles de WordPress para personalizar y extender funcionalidades sin modificar directamente el núcleo del sistema. Esta capacidad es clave para garantizar la compatibilidad con futuras actualizaciones y mantener un entorno de desarrollo limpio y sostenible.
En este artículo exploramos en profundidad qué son los hooks, cuáles son sus tipos principales (actions y filters), cómo funcionan internamente, y cómo puedes aprovecharlos de forma segura y eficiente. También veremos cómo eliminarlos y cómo detectar si tu tema o plugin los soporta.
¿Qué es un hook en WordPress?
Un hook es un punto de anclaje definido por el core de WordPress (o por plugins y temas) donde puedes «enganchar» una función personalizada. Permiten ejecutar tu propio código en momentos específicos del flujo de ejecución del CMS.
Tipos de hooks:
- Action hooks: ejecutan una función en un momento determinado. Son ideales para insertar contenido, ejecutar procesos o cargar scripts.
- Filter hooks: permiten modificar datos existentes antes de que se muestren o procesen, como alterar un título, contenido o parámetro de configuración.
Ejemplo de action hook
add_action('wp_body_open', 'mostrar_banner_promocional');
function mostrar_banner_promocional() {
echo '<div class="promo-banner">\u00a1Descuento especial del 20\u202f% por tiempo limitado!</div>';
}
Este código muestra un banner justo después de la etiqueta <body>
, siempre que el tema implemente el hook wp_body_open
.
Ejemplo de filter hook
add_filter('the_content', 'agregar_disclaimer_afiliado');
function agregar_disclaimer_afiliado($content) {
if (is_single()) {
$content .= '<p><em>Este contenido puede incluir enlaces de afiliado.</em></p>';
}
return $content;
}
Este filtro añade una nota al final de cada entrada individual del blog.
Cómo usar hooks en WordPress
Para implementar hooks necesitas acceso al archivo functions.php
de tu tema (recomendado usar un tema hijo) o, preferiblemente, un plugin personalizado si gestionas un sitio complejo.
Puedes editarlo desde:
- Escritorio: Apariencia > Editor de archivos de tema
- FTP/SFTP
- WP-CLI (opcional avanzado)
Prioridad: el orden importa
Puedes controlar cuándo se ejecuta tu hook usando un tercer parámetro: prioridad.
add_action('wp_footer', 'mensaje_1', 5);
add_action('wp_footer', 'mensaje_2', 20);
Cuanto menor el número, antes se ejecuta la función. Esto es especialmente útil cuando varios plugins o el tema están usando el mismo hook.
Cómo eliminar un hook
Puedes desenganchar una función usando remove_action()
o remove_filter()
. Es clave que esto ocurra después de que la función haya sido registrada.
add_action('init', function() {
remove_filter('the_content', 'agregar_disclaimer_afiliado');
});
Esto evitará que el disclaimer se siga mostrando en las entradas.
¿Cómo saber si un hook está disponible?
No todos los temas ni plugins utilizan los mismos hooks. Para verificarlo:
- Busca en el código:
do_action('nombre')
→ action hookapply_filters('nombre', $valor)
→ filter hook
Puedes usar herramientas como VSCode o grep
para localizar hooks en tu tema o plugin.
Consejos prácticos
- Utiliza temas hijo para mantener tus cambios a salvo.
- Agrupa funciones relacionadas en archivos separados si usas muchos hooks.
- No modifiques directamente código de terceros: engancha funciones usando hooks.
- Usa
has_action()
ohas_filter()
para verificar si una función está enganchada.
Recursos adicionales
- Referencia oficial de hooks de WordPress
- Plugins recomendados para ver hooks activos: «Query Monitor» o «Hookr»
Conclusión
Los hooks son un pilar fundamental en el desarrollo con WordPress. Te permiten personalizar, ampliar y mejorar funcionalidades sin tocar el core, lo que garantiza más estabilidad y menos dolores de cabeza en futuras actualizaciones.
Aprender a usarlos es el primer paso hacia un desarrollo WordPress profesional, seguro y escalable. Ya sea para una modificación simple o un plugin completo, dominar actions y filters te da un control total sobre el comportamiento de tu sitio.