Cómo depurar hooks de WordPress

Método práctico para saber si un hook de WordPress se ejecuta, qué callbacks tiene y por qué tu función no responde.

Revisado
Compatibilidad
WordPress 6.x
Lectura
2 min
Autor
Gabriel — infinit8

Cuando un hook “no funciona”, el problema suele estar en el momento de registro, la prioridad, los argumentos aceptados o una condición que impide cargar el archivo. Depurarlo por capas evita modificar código a ciegas.

Confirmar que el código se carga

Antes de inspeccionar el hook, verifica que el plugin o archivo se ejecuta en esa petición. Usa el log de depuración, no mensajes impresos que puedan romper cabeceras o respuestas REST.

Comprobar ejecución y callbacks

did_action() indica cuántas veces se ha disparado una acción. has_action() comprueba si existe un callback registrado.

debug-hooks.php
add_action(
    'wp_footer',
    function (): void {
        error_log(
            sprintf(
                'wp_enqueue_scripts se ejecutó %d veces',
                did_action('wp_enqueue_scripts')
            )
        );

        if (has_action('save_post', 'i8_sync_post')) {
            error_log('i8_sync_post está registrado.');
        }
    }
);

Revisar prioridad y argumentos

Un callback con prioridad 20 se ejecuta después de uno con prioridad 10. El cuarto argumento de add_action() define cuántos argumentos acepta; debe coincidir con la firma que documenta el hook.

Herramientas y entorno

Activa WP_DEBUG_LOG solo en desarrollo o staging y protege el archivo de log. Query Monitor ayuda a inspeccionar hooks y consultas, pero no sustituye una hipótesis reproducible.

Importante

No muestres errores PHP ni logs con datos sensibles en producción.

Preguntas frecuentes

¿Puedo listar todos los callbacks de un hook?

WordPress los mantiene en el global $wp_filter, pero su estructura es interna. Para depuración puntual es preferible una herramienta especializada y no depender de ella en código de negocio.

¿Por qué remove_action no elimina mi callback?

Debes usar el mismo callback y la misma prioridad con los que fue registrado. Las funciones anónimas son difíciles de retirar si no conservas su referencia.

Referencias y revisión

Contenido contrastado con documentación oficial. Comprueba siempre el comportamiento en un entorno de pruebas antes de desplegar cambios.