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.
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.
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>';
}
Lenguaje del código: PHP (php)
Este código muestra un banner justo después de la etiqueta <body>, siempre que el tema implemente el hook wp_body_open.
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;
}
Lenguaje del código: PHP (php)
Este filtro añade una nota al final de cada entrada individual del blog.
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:
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);
Lenguaje del código: JavaScript (javascript)
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.
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');
});
Lenguaje del código: JavaScript (javascript)
Esto evitará que el disclaimer se siga mostrando en las entradas.
No todos los temas ni plugins utilizan los mismos hooks. Para verificarlo:
do_action('nombre') → action hookapply_filters('nombre', $valor) → filter hookPuedes usar herramientas como VSCode o grep para localizar hooks en tu tema o plugin.
has_action() o has_filter() para verificar si una función está enganchada.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.
