WordPress 5.1 tendrá protección contra WSOD

Por , actualizado en

Actualización 01/30/2019: debido a varios reportes y artículos de que esta característica puede ser abusada, se incluirá hasta WordPress 5.2, pero mientras el desarrollo sigue andando.

WordPress 5.1 ya está en fase beta, y se espera que salgan dos betas más (21 y 29 de enero), un Release Candidate (febrero 7) y finalmente la versión liberada en 21 de febrero de 2019. En esta nueva entrega vienen cambios muy importantes para WordPress, entre los que podemos mencionar un nuevo mecanismo que funcionará a manera de protección contra WSOD (white screen of death, pantallazo blanco de la muerte) para “suspender” la ejecución de plugins con errores o con problemas de compatibilidad sin que pierdas acceso al administrador, y una nueva versión mínima de PHP, entre otras cosas. Pero vamos a empezar por la mejora estrella de WordPress 5.1, que es la protección contra errores fatales, la cual viene de un proyecto que se ha estado desarrollando por mucho tiempo, al que se le conoce como ServeHappy o Site Health Check Project, una iniciativa que tiene que finalidad educar a los usuarios hacia tener un mejor mantenimiento de sus sitios.

Protección contra WSOD en WordPress 5.1

Quién de nosotros no ha pasado por esto: actualizas un plugin y boom, pantallazo blanco, y adiós sitio: o no carga bien o muestra algún error estándar o peor, algún error de esos que jamás deberían de verse. Diste con un temido WSOD, o pantalla blanca de la muerte, una señal de que algo anda mal en tu sitio. Y lo peor de todo es que pierdes acceso al administrador, lo que dificulta las cosas, y tienes que valerte de cosas arcaicas como acceso por FTP y otros infiernillos. Pues bien, WordPress 5.1 tiene una nueva característica que funciona como protección contra WSOD, que permite que detecte cuando hay un problema grave, a la vez que mantiene el acceso a tu administrador para que puedas corregir el problema, cualquiera que este sea.

¿Cómo funciona la protección contra WSOD en WordPress 5.1?

Todos conocemos la WSOD o “white-screen-of-death“, algo que algunos llaman “protección”, pero que en realidad es como reacciona WordPress (al menos hasta ahora) cuando hay un error que permite que funcione correctamente: un espantoso pantallazo blanco, que poco o nada dice. La antítesis de la usabilidad, dirían algunos: no te da información de que causó el problema, cuando estará de vuelta el sitio: nada.

WordPress 5.1 pretende acabar con esto detectando cuando ocurre un error fatal y pausando al plugin culpable en el administrador, pero dejando el sitio en un estado desactivado que muestra un mensaje de que tiene problemas:

Muestra funcionamiento de protección contra WSOD en el frontend.
Protección WSOD en WordPress 5.1

Y debajo de este un enlace para entrar al administrador y que aquel que entre solucione los problemas. Como mencioné antes, el administrador sigue vivo, por lo que puedes entrar y corregir el problema en cuestión, y cuando lo hayas hecho el plugin seguirá su ejecución normal, así como el resto del sitio. El administrador te recibirá con una notificación de que algo anda mal:

Muestra la notificación al administrador del sitio de que algo anda mal con uno o más plugins.
Notificación en el administrador de un plugin con fallos

Y finalmente puedes ir a la sección de plugins donde se te informa quién es el culpable:

Muestra el listado de plugins e indica cual está causando conflictos.
Protección contra WSOD informa quién es el responsable del fallo…

Y a decir verdad funciona de maravilla; lo que ves arriba fue probado en WordPress 5.1 Beta 1 en un entorno local de pruebas, y para probar la protección contra WSOD instalé WPForms Lite, al cual simplemente le edité un archivo y le modifiqué una cadena de nombre de archivo requerido, suficiente para que genere un error, y WordPress 5.1 detuvo el problema como si nada, permitiéndome el flujo antes descrito de entrar al administrador y corregir el problema. Lo vuelvo a decir: funciona de maravilla, y me parece una excelente característica que permitirá que se minimize el tiempo en que un sitio aparezca caído, y es mucho, mucho mejor que una pantalla en blanco.

Y por si fuera poco, será configurable: ya sea que no quieras la protección contra WSOD o bien no quieras el comportamiento estándar de la característica, podrás modificarlo con un poco de código; una de esas ocasiones es cuando estás desarrollando un plugin y necesitas ver los errores que genere.

Nueva versión mínima de PHP

La protección contra WSOD no se creó así nada mas porque si; existe para reforzar la idea de actualizar la versión de PHP que usas en tu servidor sin experimentar tantos problemas. Con WordPress 5.1 igual viene un cambio importante en la versión mínima de PHP recomendada, la cual será la 5.6, y de ahí hasta fin de año pasaría a ser la 7. Con este cambio de versión mínima se espera que muchos actualicen las versiones que usan en sus servidores, pero también saben que significará que habrán problemas con plugins viejos que no se actualicen, y aquí es donde entra la protección contra el WSOD.

Gráfica de distribución de versiones de PHP usadas en WordPress.
Distribución de versiones de PHP usadas en sitios con WordPress

Como pueden ver, hay mucha gente en la línea base, es decir, la versión 5.6; pero aún queda un porcentaje importante de gente en versiones más antiguas, y la adopción de versiones 7+ es mucho menor de lo deseado, así que creo que este movimiento va a hacer que muchos empiecen a pensar como actualizar sus servidores.

Para esto, y si tu versión de PHP está antigua, en tu escritorio de WordPress verás una notificación avisándote de esto, parecido a esta siguiente imagen:

Notificación de versión de PHP desactualizada en WordPress 5.1
Notificación de PHP obsoleto en WordPress 5.1

Lo interesante es que la URL del botón es configurable a través de una variable de entorno (WP_UPDATE_PHP_URL) o bien por filtros (wp_update_php_url), esto con miras a que los proveedores de servicios que ofrezcan WordPress redireccionen a instrucciones personalizadas de como actualizar la versión de PHP. Si no se modifica, redirige a una página de WordPress donde se explica los pormenores de actualizar la versión de PHP; incluso cuando se personaliza (como ves en la imagen de arriba) se mantiene el enlace original a la página de WordPress.

Mejoras para desarrolladores

Si desarrollas para WordPress, vienen algunas mejoras que aunque si bien pudieran parecer menores, si me parecen significativas:

Prueba WordPress 5.1 Beta 1

Si quieres probar WordPress 5.1 Beta 1, puedes instalar el plugin WordPress Beta tester, y al hacerlo ve a Herramientas > Beta testing y selecciona “Bleeding edge nighties”; ahora visita el centro de actualizaciones en Escritorio > Actualizaciones y actualiza tu versión: después de un breve momento estarás en WordPress 5.1 Beta 1…y por supuesto, ¡hazlo en un entorno de pruebas!

[awesome_changelog id=1539]

Deja un comentario

Do NOT follow this link or you will be banned from the site!

A %d blogueros les gusta esto: