Con la llegada de PHP 7 muchos hemos actualizado nuestras webs con WordPress para disfrutar de una mayor velocidad, pero con esta actualización han llegado algunos problemas relacionados con plugins o temas que usan expresiones anticuadas de PHP o incompatibles con la nueva versión, lo que acaba siempre con nuestra web mostrando errores o Warnings de PHP que hacen que se vea muy fea.

Aunque lo idóneo es solucionar estos problemas adaptando el código o contactando con los autores de los plugins o temas, no siempre es posible o está en nuestras manos y la única opción que nos queda es esconder dichos errores para que el usuario no pueda verlos (siempre y cuando no alteren el funcionamiento de nuestra web).

Para desactivar los mensajes de error y Warnings de PHP tan solo tenemos que añadir las siguientes líneas a nuestro wp-config.php.

 

ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

AVISO: Haz siempre una copia de seguridad del archivo wp-config.php cada vez que modifiques algo ya que es un archivo esencial con la configuración de nuestro WordPress.

Las 3 primeras líneas se encargan de ajustar variables de nuestra configuración de php que se suele encontrar en el archivo php.ini.

ini_set('log_errors','On');

Activando la opción log_errors conseguiremos que los errores y warnings de PHP se guarden en un archivo log, ya que si los ocultamos y necesitamos información de un error no habrá forma de tener noticia de dicho error si no lo guardamos en algún sitio.

ini_set('display_errors','Off');

Ahora que hemos logeado los errores con log_errors, procedemos a ocultarlos al usuario desactivando la opción display_errors.

ini_set('error_reporting', E_ALL );

La constante error_reporting con el valor E_ALL hace que se avise de todos los errores y warnings sean del nivel de gravedad que sean, en nuestro caso no se mostrarían pero si se guardarían en el log.

Las 3 últimas líneas se encargan de definir constantes de configuración de WordPress. Estas constantes hacen prácticamente lo mismo que las anteriores pero en lugar de ser de la configuración de PHP son para WordPress.

define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Y listo!! ya hemos ocultado todos los errores de php y WordPress de la vista del usuario y los hemos guardado en archivos log en nuestro servidor que nosotros podremos bichear mucho más tarde y sin molestar al usuario. Personalmente esta acción es algo que hago en todas mis webs nuevas al instalarlas para ahorrarme más tarde problemas.