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.php
archivo 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.php
entra 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-content
carpeta. ¡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.ini
archivo del servidor tiene display_errors establecido en 1 .
@ini_set ('display_errors', 0);
Escribe tus propios mensajes en el archivo de registro, o cuando ECHO
no es suficiente

Durante el proceso de localizar un error, una de las formas más convenientes de depurar es usando echo
y var_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 echo
simplemente 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_debug
y wp_debug_log
en wp-config.php
, es decir, configurar ambos en true.
Esto crea un error.log
archivo y lo coloca en la wp-content
carpeta.
CÓMO REGISTRAR VARIABLES EN LUGAR DE ECHO
Ahora, en lugar de usar el echo
comando para registrar sus variables, usa el error_log
comando 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_dump
en 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_LOG
parámetros adicionales
Si observas el error_log
comando, verá que obtiene 3 parámetros opcionales más. La combinación del segundo $message_type
, y el tercero, $destination
y en algunos casos el cuarto $extra_headers
, definen una ubicación adicional en la que se puede escribir el registro de errores.