Cómo silenciar errores y avisos en WordPress en una emergencia
A veces los errores o avisos de PHP aparecen en tu sitio WordPress en producción y estropean el diseño o confunden a los visitantes. Puedes ocultar temporalmente esos mensajes en pantalla para que el sitio público vuelva a verse normal. Eso es solo un paso de emergencia. No repara el fallo y no significa que el problema haya desaparecido.
Importante: ocultar avisos o errores en pantalla es solo temporal. Suprimir lo que se muestra no resuelve la causa de fondo. Úsalo únicamente como mitigación a corto plazo en un sitio en producción; después inspecciona los registros con seguridad, identifica el plugin, el tema o el código PHP responsable, trabaja desde una copia de seguridad o un entorno de pruebas, corrige o actualiza ese código y verifica el sitio. No trates los errores ocultos como si fuera seguro ignorarlos. Desactivar
WP_DEBUGtampoco escribe los errores en un archivo de registro.
Paso temporal: ocultar los mensajes de error a los visitantes
WordPress ya incluye una línea WP_DEBUG en wp-config.php. Edita esa línea existente. No pegues un segundo define( 'WP_DEBUG', ... ): definir la misma constante dos veces puede generar un aviso de PHP. Coloca estos ajustes antes del comentario /* That's all, stop editing! */, no después.
1. Localiza wp-config.php
Conéctate con un cliente FTP o el administrador de archivos de tu alojamiento y abre wp-config.php en el directorio raíz de tu instalación de WordPress.
2. Edita la línea WP_DEBUG existente
Busca la línea que ya se parece a define( 'WP_DEBUG', true ); o define( 'WP_DEBUG', false );. Cámbiala para que la depuración esté desactivada:
define( 'WP_DEBUG', false );
Usa el valor booleano false sin comillas. Un 'false' entre comillas es una cadena, y PHP lo trataría como verdadero.
3. Oculta los errores de PHP que aún se muestren en pantalla, si hace falta
Algunos alojamientos siguen imprimiendo errores de PHP aunque el modo de depuración de WordPress esté desactivado. Si eso ocurre, añade la siguiente línea cerca de tu ajuste WP_DEBUG solo si aún no está ahí:
@ini_set( 'display_errors', 0 );
Después de una edición cuidadosa, esa sección debería verse así, no como dos copias de WP_DEBUG una encima de otra:
define( 'WP_DEBUG', false ); @ini_set( 'display_errors', 0 );
Qué hace esto:
define( 'WP_DEBUG', false );— Desactiva el modo de depuración de WordPress. Los visitantes ya no deberían ver la salida de depuración de WordPress. Esto no registra los errores por ti.@ini_set( 'display_errors', 0 );— Indica a PHP que no imprima errores en el HTML de la página. Es un ajuste de visualización, no una solución.
Evita usar error_reporting(0); como enfoque principal. Silencia tanto los informes de PHP que resulta más difícil saber qué se rompió.
Lo que debes hacer a continuación: diagnosticar y corregir el error real
En cuanto el sitio público vuelva a ser legible, encuentra la causa. Un buen flujo de trabajo:
- Haz una copia de seguridad antes de cambiar plugins, temas o código.
- Reproduce el problema en una copia de pruebas o en un sitio local siempre que puedas, para que los visitantes nunca vean la salida de depuración.
- En esa copia de pruebas, activa el registro sin mostrar errores en pantalla. Coloca esto antes de
/* That's all, stop editing! */y actualiza las líneas de depuración existentes en lugar de duplicarlas:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
Cómo funcionan esas líneas juntas:
WP_DEBUG— debe sertruepara que las otras dos constantes de depuración surtan efecto.WP_DEBUG_LOG— escribe los mensajes enwp-content/debug.log(u otra ruta que indiques). No hace nada siWP_DEBUGes false.WP_DEBUG_DISPLAY— enfalse, másdisplay_errorsen0, mantiene esos mensajes fuera de la página para que puedas leerlos en el registro.
Abre debug.log por FTP o con el administrador de archivos de tu alojamiento, no dejándolo descargable en el navegador. Un archivo de registro dentro de wp-content puede exponer rutas del servidor y nombres de plugins si alguien lo obtiene por HTTP. Cuando termines, desactiva de nuevo la depuración y elimina o restringe el archivo de registro.
Usa el registro para identificar el plugin, el tema o el archivo PHP que generó el aviso o el error. Actualiza o corrige ese código y vuelve a cargar las páginas afectadas para confirmar que el mensaje desapareció.
WordPress documenta esta configuración de depuración en su manual para desarrolladores.
Por qué no debes quedarte solo en ocultar el mensaje
Los errores ocultos aún pueden romper funciones, ralentizar el sitio o dejar un problema de seguridad. La limpieza en pantalla solo protege a los visitantes mientras trabajas. El objetivo real es un sitio estable con el problema de fondo resuelto.
Conclusión
En una emergencia, puedes ocultar la salida de errores de WordPress y PHP editando la línea WP_DEBUG existente a false y, si hace falta, desactivando display_errors: siempre antes del comentario de “stop editing” y nunca definiendo la misma constante dos veces. Después diagnostica la causa en una copia de seguridad o de pruebas con registro de depuración, corrige el plugin, el tema o el código PHP responsable y verifica. Ocultar un aviso es temporal; lo que permanece es corregir el error.
