Depuración de WordPress: Cómo hacerlo más allá de lo básico

Este es un post para wordpreseros avanzados que están en el conocimiento para crear plugins propios o themes al momento de desarrollar un sitio web

Al trabajo de eliminar o reparar esos errores (bugs) le llamamos depurar. Y depurar WordPress puede ser algo necesario si deseas un sitio web más veloz y seguro y también cuando acabas de crear un complemento pars tu proyecto.

Veamos como empezar a depurar wordpress.

Tocando el archivo de registro

Para comenzar a depurar, vaya al wp-config.phparchivo en la raíz del sistema de archivos de WordPress y active la variable de depuración, es decir, establezca debug en true:

define ('WP_DEBUG', true);

Definir esta constante como true hará que todos los errores, avisos y advertencias de PHP se muestren en la pantalla. Es muy recomendable hacer esto durante la fase de desarrollo del proyecto, ya que le muestra los errores en su código mientras está desarrollando, y puede corregirlos de inmediato.

Pero, ¿qué sucede si deseas verificar errores en un sitio en construcción? Mostrar errores en la pantalla es lo último que desearás que pase, ya que no solo perturba la apariencia del sitio, sino que también puede ser una fuente de filtración de información.

Entonces, ¿cómo podemos detectar errores que ocurren en la construcción? ¿Hay alguna forma de ver la información de depuración sin compartirla con los visitantes del sitio? De hecho la hay, y ahí es donde wp-config.phpentra en juego.

WP_DEBUG_DISPLAY y WP_DEBUG_LOG

Después de encender WP_DEBUG, encienda WP_DEBUG_LOG. De esa forma, los errores rastreados se escriben en un archivo de registro.

Ahora puedes preguntarse quién va a crear ese archivo de registro y dónde residirá. La respuesta es que WordPress se encarga de esto por nosotros, es decir, no hay necesidad de nuestra creación manual: tan pronto como aparece un error, se crea un archivo de registro y se coloca en la wp-contentcarpeta. ¡Tan sencillo!

Lo siguiente que debes hacer es no permitir que seaparezcan errores en la pantalla. Para hacer esto, apague WP_DEBUG_DISPLAY.

// Deshabilitar la visualización de errores y advertencias 
define ('WP_DEBUG_DISPLAY', false);

Y así, el conjunto de comandos que nos permite enviar mensajes de error a un archivo y no a la pantalla es este:

 // Habilita el modo WP_DEBUG
define ('WP_DEBUG', verdadero);

// Habilite el registro de depuración en el archivo /wp-content/debug.log
define ('WP_DEBUG_LOG', verdadero);

// Deshabilitar la visualización de errores y advertencias 
define ('WP_DEBUG_DISPLAY', falso);

A veces, es posible que deba agregar esta línea para ocultar los errores de la pantalla. Esto podría suceder si el php.iniarchivo del servidor tiene display_errors establecido en 1 .

@ini_set ('display_errors', 0);

Escribe tus propios mensajes en el archivo de registro, o cuando ECHOno es suficiente

Durante el proceso de localizar un error, una de las formas más convenientes de depurar es usando echovar_dump

Pero, a veces, estos comandos no se pueden utilizar. A veces, la razón es clara: por ejemplo, cuando se crea un widget y algo sale mal durante el método de guardado, el eco en la pantalla no funcionará porque la función usa AJAX, lo que actualiza la parte del widget a la que estaría echo-ing …

En otras ocasiones, la razón puede no estar clara: simplemente aparece un error fatal que no permite que la página se procese y echosimplemente no aparece en la pantalla…

De cualquier manera, ya sea que la razón sea clara o no, el resultado es el mismo y debes encontrar una forma diferente de mostrar los valores de las variables en cuestión.

La solución es activar ambos wp_debugwp_debug_logen wp-config.php, es decir, configurar ambos en true.
Esto crea un error.logarchivo y lo coloca en la wp-contentcarpeta.

CÓMO REGISTRAR VARIABLES EN LUGAR DE ECHO

Ahora, en lugar de usar el echocomando para registrar sus variables, usa el error_logcomando PHP.

Entonces, en lugar de

echo "I'm on line 38";

Escribe:

error_log("I'm on line 38");

Cómo registrar variables en lugar de VAR_DUMP

Supongamos ahora que no tenemos una cadena de error ni ninguna cadena, pero queremos verificar los valores de ciertas variables, como lo hacemos con var_dump.

Encontré este fragmento de código hace unos años en una publicación que explicaba cómo volcar var_dumpen un archivo, y dice así:

$ x = "Mi cadena";
// Volcar x, o cualquier otra variable para el caso
ob_start ();
var_dump ($ x);
$ contenido = ob_get_contents ();
ob_end_clean ();
error_log ($ contenido);

Convertir nuestro depurador inteligente en una función

Para no tener que escribir estas 8 líneas cada vez, lo más efectivo es convertirlo en una función permanente en tu archivo de tema functions.php si estás desarrollando un theme, o si estás desarrollando un complemento. 

La función debe aceptar un parámetro que es la variable que se debe volcar en el archivo.

ERROR_LOGparámetros adicionales

Si observas el error_logcomando, verá que obtiene 3 parámetros opcionales más. La combinación del segundo $message_type, y el tercero, $destinationy en algunos casos el cuarto $extra_headers, definen una ubicación adicional en la que se puede escribir el registro de errores.

Curso Gratis de WP

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Abrir chat
¿Buscas Hosting o dominio?
¿Podemos Ayudarte?