Ir al contenido principal

WordPress muestra "Ha habido un error crítico en esta web" tras un cambio de versión de PHP

Escrito por Javier Galeote

Síntomas

La web muestra la pantalla de "Ha habido un error crítico en esta web" sin que aparentemente se haya hecho ningún cambio. A veces el error afecta a toda la web y otras veces solo a algunas páginas (por ejemplo la portada y algunas secciones), mientras que el resto sigue funcionando.

Causa habitual

Una causa muy frecuente es que la versión de PHP de la cuenta ha cambiado (por ejemplo de PHP 7.4 a PHP 8.x) y el tema, algún plugin o código antiguo de la web no es compatible con la nueva versión.

En el registro de errores (error_log) aparecen errores fatales de este tipo:

PHP Fatal error: Uncaught TypeError: Unsupported operand types: string * string in .../wp-includes/media.php

Son operaciones que las versiones antiguas de PHP toleraban pero que PHP 8 ya no permite. Ten en cuenta que el cambio de versión puede haberlo hecho otra persona con acceso a la cuenta: conviene revisarlo antes de descartar esta causa.

Cómo comprobarlo y solucionarlo

  1. En cPanel, abre MultiPHP Manager y comprueba qué versión de PHP tiene asignado el dominio.

  2. Revisa el fichero error_log de la web en busca de errores PHP Fatal error recientes.

  3. Si el error empezó tras un cambio de versión, vuelve a asignar la versión de PHP anterior (por ejemplo PHP 7.4). La web debería funcionar de inmediato.

Solución de fondo

Volver a la versión anterior de PHP es una solución temporal. Las versiones antiguas de PHP dejan de recibir soporte y actualizaciones de seguridad, así que lo recomendable es:

  • Actualizar WordPress, el tema y los plugins a versiones compatibles con PHP 8.

  • Probar el cambio de versión primero en un entorno de pruebas o staging.

  • Cambiar la versión de PHP solo cuando hayas verificado que la aplicación y todos sus componentes son 100 % compatibles.

¿Ha quedado contestada tu pregunta?