Si has trabajado con WordPress es probable que en alguna ocasión hayas visto errores en tu web después de realizar alguna instalación o actualización de plugins, de temas o del propio WordPress. Cuando esto sucede la página muestra un aviso del tipo “Ha habido un error crítico en esta web”, un error 500 o simplemente la pantalla se queda en blanco sin dar más información:
Ante estos errores, se recomienda recuperar una copia de seguridad anterior de la web. En nuestros alojamientos compartidos se incluyen backups que pueden ser restaurados para resolver el problema y devolver la web a un estado anterior antes del fallo.
Si esto no es posible o quieres probar a resolver el problema, WordPress dispone de herramientas para poder tener más información sobre los errores, ya sea viéndolos por pantalla o guardándolos en un archivo de texto. Para ello hay que activar lo que se conoce como el "Modo Debug” o de depuración de errores. De esa forma podremos obtener más información sobre los errores que impiden funcionar bien a la web, lo que nos ayudará a identificar y resolver el problema.
Con este modo activo podremos:
Para activar el Modo Debug debes acceder al administrador de archivos del alojamiento, o bien al FTP, y modificar el archivo wp-config.php que se encuentra en la raíz de tu web WordPress:
En dicho archivo aparece información sobre la conexión a la base de datos y diferentes opciones de configuración de WordPress. Una de estas opciones es el Modo Debug, que está desactivado por defecto.
Dependiendo de si queremos que los errores se muestren en pantalla o si queremos que se vuelquen a un archivo debemos añadir o modificar unas líneas específicas:
Para ver los errores en la pantalla del navegador, dentro del fichero wp-config.php debemos localizar estas líneas:
if (!defined('WP_DEBUG')) { define('WP_DEBUG', false); }
Y cambiar "false" por "true":
if (!defined('WP_DEBUG')) {
define('WP_DEBUG', true);
}
En ese momento el Modo Debug estará activado. Ahora, para ver los errores, accede a tu web nuevamente y verás que aparecerán en pantalla, con algo parecido a esto:
Puede ser complementaria además, a la de ver los errores en pantalla. Con esta opción, los errores serán guardados en un fichero llamado debug.log, dentro de la carpeta wp-content de tu WordPress. Para ello, dentro del fichero wp-config.php debemos localizar estas líneas:
if (!defined('WP_DEBUG')) { define('WP_DEBUG', false); }
Y cámbialas según la situación que te interese:
if (!defined('WP_DEBUG')) { define('WP_DEBUG', true); } define('WP_DEBUG_DISPLAY', false); define('WP_DEBUG_LOG', true);
if (!defined('WP_DEBUG')) { define('WP_DEBUG', true); } define('WP_DEBUG_DISPLAY', true); define('WP_DEBUG_LOG', true);
Breve explicación del código:
La línea define('WP_DEBUG_DISPLAY', XXXXX); indica con true o false si queremos que los errores se vean en pantalla.
La línea define('WP_DEBUG_LOG', XXXXX); indica con true o false si queremos que los errores se guarden en un fichero aparte.
Debes tener en cuenta que si la página web en la que activas el modo de depuración es pública, los errores serán visibles a todo el mundo, incluyendo posibles bots que puedan usar esa información para buscar problemas de seguridad.
Recomendamos usar el Modo Debug el menor tiempo posible (no dejarlo activo después de haberlo usado) o bien usarlo para que en lugar de en pantalla se vuelque en un archivo. Además, si usas el volcado de errores a archivo, podrás pasar ese archivo a quien se encargue de revisar el problema o a los desarrolladores que te pidan más información sobre el error.
Si no localizas la línea define(‘WP_DEBUG’, false); en el archivo wp-config.php, puedes añadir todo el código que te hemos indicado justo antes de la siguiente línea:
/* That's all, stop editing! Happy blogging. */
Si tampoco aparece esta línea significa que tu archivo de configuración ha sido modificado previamente y deberás consultar con el servicio técnico o con un experto para que revisen el problema, por si hay código malicioso o modificaciones realizadas por terceros.
Al activar el Modo Debug no aparecen solo errores, sino también avisos o información sobre el código de la web. Te describimos brevemente los tipos de mensaje que puedes encontrar:
Los errores que pueden aparecer son muy amplios y la mayoría de ellos requieren conocimientos en programación y estructura de WordPress. Sin embargo, algunos errores sí que pueden ser gestionados con pocos conocimientos sobre WordPress, ayudándonos a que la web se vuelva a estar operativa.
Los errores mostrarán información del tipo:
PHP Fatal error: Uncaught Error: Call to undefined function custom_funct() in /wp-content/plugins/mi-plugin/plugin.php:45
Este supuesto error lo que indica que en el plugin llamado "mi-plugin" hay un error en el archivo "plugin.php" en la línea "45".
En este caso, si tenemos acceso a la parte de administración de WordPress, podemos desactivar el plugin “mi-plugin” para que no aparezca el error. Si no tenemos acceso al administrador de WordPress por ese mismo fallo podemos cambiar el nombre de la carpeta que contiene el plugin para que WordPress desactive dicho plugin.
Mostramos un ejemplo completo. Aparece el error al acceder a la web:
Para mostrar más información activo el modo Debug editando el archivo wp-config.php, en este caso usando el gestor de archivos del propio alojamiento, cambio “false” por “true” en la línea de define(‘WP_DEBUG’ y guardo el archivo:
Ahora, al acceder a la web aparece la información del error indicando que hay un error de sintaxis en uno de los archivos del plugin “Insert Headers and Footers”:
Si se tienen conocimientos de programación se puede investigar más en detalle el error, pero en caso contrario se puede intentar desactivar ese plugin. Si no se tiene acceso al panel de administración de WordPress por el fallo se puede acceder al administrador de archivos y cambiar el nombre de la carpeta que contiene ese plugin. Usando el gestor de archivos del hosting web localizamos la carpeta del plugin en /wp-config/plugins/ :
Usando las opciones del gestor de archivos cambiamos el nombre de la carpeta del plugin “Insert Headers and Footers”, que es el plugin que está dando el error, en este caso “insert-headers-and-footers", añadiendo algo al final para identificarla en el futuro:
Y al acceder de nuevo a la web, en este caso, ya aparece de nuevo correctamente, aunque con las funcionalidades de ese plugin desactivadas. También puede que aparezcan nuevos errores que antes no aparecían por el error del plugin que hemos desactivado. En estos casos es ver si podemos hacer algo.