Cómo solucionar el error Cannot modify header information – headers already sent by… en WordPress

Esta noche he tenido un problema con uno de los blogs de WordPress que gestiono. El realizar una actualización de uno de los plugins de caché de repente me he visto expulsado del administrador y sin poder volver a loguearme ya que me aparecía el siguiente error (he sustituido los datos del dominio por xxxxx): Warning: Cannot modify header information – headers already sent by (output started at /xxxxx/index.php:281) in /xxxxx/config.php on line 72. Además, los estilos del sitio se han caído por completo y también se mostraba mal para los usuarios externos. Desastre total, vamos.

Así las cosas y ya que como decía Mulder el de Expediente X “Truth is out there” (la verdad está ahí fuera) me he dedicado a investigar para saber si el error le había ocurrido a más gente y, sobre todo, cuál era la solución más sencilla… y como suele ocurrir en estos casos el Sr. Google está ahí para echarte una mano.

El origen del problema parece estar en que a PHP no le gustan demasiado los espacios en blanco situados en según qué posiciones y al realizar cambios en plugins o ciertas actualizaciones se pueden generar en algunos archivos .php (en mi caso el config.php) unos espacios en blanco antes del < ?php y después del ?> que impiden la correcta ejecución.

La solución es tan sencilla como sustituir el archivo corrupto por una versión de back up o, si no se tiene una, descargar el archivo vía FTP, modificarlo con un editor de texto como el Notepad de Windows para eliminar todos los espacios, y volverlo a subir.

Un detalle muy importante a tener en cuenta es asegurarse que el archivo está codificado como ANSI antes de guardarlo porque con otras codificaciones como UTF-8 da error.

Ahí lo dejo, por si a alguien le sirve de ayuda.

, , ,