Investiga los problemas de tu WordPress con DebugPress

Recogiendo el guante lanzado por Juan en la edición #189 de Enlace Permanente, hoy vamos a probar DebugPress, un plugin para WordPress de reciente lanzamiento para investigar posibles problemas en tu instalación.

Una de las ventajas de WordPress es que la cantidad de modificaciones que puedes hacerle a una instalación base es infinita. Pero esto es también un arma de doble filo. Cuanto más compleja es una instalación de WordPress, más fácil es que hayan incompatibilidades y posibles problemas, y más complicado es encontrarlos.

Instalando y configurando DebugPress

DebugPress es un plugin de WordPress desarrollador por Milan Petrovic que puedes encontrar en el directorio de plugins de WordPress.org. Esto quiere decir que puedes ir a tu instalación WordPress, acceder al menú Plugins y allí añadir uno nuevo. Con sólo buscar la palabra clave «DebugPress», encontrarás el plugin y lo podrás descargar y activar desde allí.

Una vez lo tengas activado en tu WordPress, has de ir a los ajustes de DebugPress (dentro del menú Ajustes) para poder configurar el plugin:

Entre las cosas que puedes escoger, tienes la posibilidad de limitar qué roles de usuario pueden acceder al panel de DebugPress. También puedes decidir qué paneles adicionales activar. En nuestro caso, yo los he activado todos en mi instalación WordPress de pruebas.

De la misma forma, he activado que DebugPress analice todos los errores y alertas PHP, así como llamadas AJAX y demás opciones. Además, para que DebugPress sea capaz de mostrar información sobre consultas SQL y actividad en el log de errores de WordPress, he activado las siguientes constantes en el archivo wp-config.php de mi instalación:

define('WP_DEBUG', true);
define('WP_DEBUG_DISPLAY', false); 
define('WP_DEBUG_LOG', true);
define('SAVEQUERIES', true);

Las dos primeras constantes las tenía activadas antes, ya que estoy probando DebugPress en mi instalación de desarrollo y pruebas. Como desarrollador, te interesa tener estas constantes activadas para que WordPress te muestre errores y demás mensajes que oculta por defecto.

Las otras dos constantes activan el log de errores (que es un archivo debug.log que se guarda en el directorio /wp-content/ de tu instalación) y el almacenamiento de consultas, que comentaba antes. Ten en cuenta que puedes no activar estas constantes, pero entonces algunos paneles de DebugPress no mostrarán toda la información posible.

El icono para ver el panel de DebugPress aparece en la parte derecha de la barra superior de WordPress.
El icono para abrir los paneles de DebugPress aparece en la parte derecha de la barra superior de administración de WordPress.

Cuando tengas todo listo, ya puedes ir al icono del bichito que aparece en la parte superior derecha de tu WordPress. Ese icono te aparecerá tanto en el Escritorio de WordPress como cuando accedas al frontal de tu web (puedes cambiar esto último en los ajustes de DebugPress).

Por tanto, DebugPress te proporciona información sobre tu instalación de WordPress y sobre lo que está pasando cuando accedes al frontal de tu web.

Los paneles de información de DebugPress

Cuando hacemos clic en el botón de DebugPress se nos abre un popup con varias paneles agrupados en pestañas. Cada pestaña contiene los paneles concretos de un tipo de información específica. Veamos cada uno de ellos y qué información contienen.

En la primera pestaña de DebugPress tenemos la información básica sobre nuestra instalación WordPress. Aquí podemos ver los límites de memoria y de tiempo de ejecución de PHP, la versión de WordPress y los directorios más importantes de la instalación, así como el valor de algunos conditional tags de WordPress para saber si la instalación es multisitio, entre otros valores.

Panel Basics de DebugPress.
Panel Basics de DebugPress.

Además, en DebugPress tienes estadísticas de carga de la página. Esto es especialmente útil para ver si la página ha tardado más de lo esperable en cargar, así como averiguar el número de consultas SQL que se han realizado, la cantidad de hooks que se han ejecutado y la memoria que PHP ha usado.

En la pestaña de Request de DebugPress tenemos información sobre la petición actual que se ha hecho en al servidor de WordPress. Podemos ver la URL que se ha pedido, así como las cabeceras tanto de la petición como de la respuesta. Otra vez, esto es especialmente útil para ver si tanto la información de la petición como de la respuesta obtenida son correctas y no tienen problemas.

Panel de Request de DebugPress.
Panel de Request de DebugPress.

En la pestaña de Admin tienes datos sobre la página actual del Escritorio de WordPress. Al acceder al calendario editorial de Nelio Content en mi instalación puedo ver el valor de la variable $pagenow así como los valores de la pantalla actual (current screen):

Panel de Admin de DebugPress.
Panel de Admin de DebugPress.

Una de las pestañas más interesantes de DebugPress es la de Content. Aquí puedes ver toda la lista de tipos de contenidos personalizados registrados en WordPress, así como las taxonomías personalizadas y los post statuses. Además, para cada uno de estos tipos, puedes desplegarlo y ver los valores que tienen.

Si no tuvieras este panel, tendrías que investigar qué plugins para registrar contenidos tiene la instalación o bien ver si en algún lugar del código PHP hay registros de tipos de contenidos, taxonomías o estados. Está claro que tenerlo todo en un mismo lugar ayuda mucho.

Panel de Content de DebugPress.
Panel de Content de DebugPress.

En la pestaña de Constants tenemos todas las constantes definidas en WordPress. Además, para cada constante definida podemos ver su valor en este preciso momento:

Panel de Constants de DebugPress.
Panel de Constants de DebugPress.

En la pestaña de SQL Queries de DebugPress podemos ver en un momento dado qué consultas SQL se han ejecutado para visualizar la página actual. Además de ver cada una de estas consultas, las podemos ordenar por su tiempo de ejecución y así tener de un vistazo qué consultas son las más lentas y qué funciones PHP son las que las han lanzado.

Si tienes un plugin que hace cosas raras con la base de datos y hace que tu web vaya mucho más lenta, con esta vista de DebugPress conseguirás identificar los problemas.

Panel de SQL Queries de DebugPress.
Panel de SQL Queries de DebugPress.

En la pestaña User de DebugPress tenemos toda la información del usuario actual. Esto incluye tanto la información que podemos encontrar en la tabla wp_users como en la tabla wp_usermeta de la base de datos de WordPress.

Si no tienes acceso a la base de datos y necesitas ver el rol de tu usuario y las capabilities concretas que te han asignado, este panel te va a ser muy útil.

Panel de User de DebugPress.
Panel de User de DebugPress.

Otro panel interesante de DebugPress es el que te muestra todos los estilos y scripts que hay encolados en WordPress en una página concreta. Muchas veces hemos tenido problemas con usuarios de alguno de nuestros plugins porque en su instalación nuestros scripts JavaScript no se cargaban. Tener esta información es de especial interés para desarrolladores como nosotros.

Ahora podemos pedir a esos usuarios más reticentes a darnos acceso a su instalación WordPress que instalen DebugPress y nos pasen una captura de la pestaña de Enqueue para así ver si hay scripts que no se están cargado como toca. Solucionar los problemas con esta información debería ser más sencillo.

Panel de Enqueue de DebugPress.
Panel de Enqueue de DebugPress.

En el panel de PHP podemos ver la información que contienen las variables $_SERVER, $_REQUEST y $_COOKIE de PHP para la petición de la página actual:

Panel de PHP de DebugPress.
Panel de PHP de DebugPress.

También, en la pestaña de System tenemos información general sobre el servidor en el que tenemos instalado WordPress. Importante aquí el poder ver la versión de PHP, la IP y algunos límites de tamaño de subida de archivos y de tiempo de ejecución:

Panel de System de DebugPress.
Panel de System de DebugPress.

Por último, en la pestaña AJAX vemos las llamadas AJAX que se realizan en la página actual. En esta vista he de decir que tampoco he visto cosas demasiado interesantes. Si tienes acceso a la instalación WordPress, lo que puedes encontrar sobre llamadas AJAX en la consola de desarrollador del propio navegador es mucho más interesante que lo que DebugPress muestra aquí.

Panel de AJAX de DebugPress.
Panel de AJAX de DebugPress.

Finalmente, al lado del botón para cerrar la ventana de DebugPress que encontramos en la esquina superior derecha vemos que hay un botón con forma de hoja de papel. Si hacemos clic vemos que es la vista en la que podemos ver el log de WordPress que activamos al principio.

Aquí vemos dónde está el log almacenado en la instalación y el tamaño del archivo. Además, tenemos un botón azul para cargarlo. Sin embargo, no he conseguido que este botón azul funcione y muestre el contenido del archivo de log.

Vista del log de WordPress en DebugPress.
Vista del log de WordPress en DebugPress.

Cada vez que hago clic en este botón azul se lanza una petición AJAX que devuelve un error. Podemos ver esta petición fallida en la propia pestaña de AJAX de DebugPress.

Si abro el archivo de log de WordPress con un editor de texto cualquiera veo que hay en error en DebugPress que ocurre al hacer clic en ese botón. Así que supongo que ahora mismo esta versión de DebugPress tiene un error que el desarrollador solucionará en futuras versiones.

Al intentar cargar la información del log de WordPress, DebugPress da un error que podemos ver con el propio DebugPress.
Al intentar cargar la información del log de WordPress, DebugPress da un error AJAX que podemos ver con el propio DebugPress.

Aún así, este ha sido el único inconveniente que he podido encontrar después de probar a conciencia las diferentes vistas y paneles que DebugPress proporciona.

Opinión sobre DebugPress

Aunque toda la información que DebugPress nos proporciona es posible consultarla a través de otros medios, tenerla toda en un único lugar es lo que más valor proporciona el plugin.

Obviamente, DebugPress no es un plugin para tener activado todo el tiempo en tu WordPress, pero puede ser de gran ayuda cuando tienes que investigar en la instalación de un cliente posibles problemas de los que no tienes demasiada idea de porqué están pasando. Con suerte, DebugPress te puede ayudar a intuir qué problemas hay y a partir de ahí tirar del hilo para arreglar tu WordPress.

Con DebugPress tienes toda la información necesaria para que encontrar problemas en WordPress sea una tarea un poco más sencilla. Espero que arreglen los problemillas que tienen con el log y así mejorar aún más la calidad de este plugin totalmente recomendable para desarrolladores WordPress.

Imagen destacada de Xuan Nguyen en Unsplash.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad de Nelio Software

Tus datos personales se almacenarán en SiteGround y serán usados por Nelio Software con el único objetivo de publicar tu comentario aquí. Con el envío de este comentario, nos das el consentimiento expreso para ello. Escríbenos para acceder, rectificar, limitar o eliminar tus datos personales.