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.

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.

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.

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):

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.

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:

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.

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.

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.

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:

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:

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í.

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.

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.

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.

Nelio Content
Estoy tan contento con Nelio Content que parece que me hayan pagado para hablar bién de él… pero es que también a ti te encantará: funciona como prometen, la programación automática de mensajes es increíble, la calidad/precio no tiene parangón y su equipo de soporte se siente como si fueran parte del tuyo.

Panozk
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