Soporte » Instalación – Actualizaciones » Cambio PHP 7.3-7.4 produce crash

  • Silvio

    (@sember)


    Hola, buenas tardes!
    Llevo días luchando con un error y por lo que he buscado dentro y fuera del foro, parece que sólo me pasa a mí.
    Hace unos días quise actualizar PHP a 7.4 y obtuve crash.
    Volví a 7.3 y descubrí que estaba todo actualizado, pero el template hacía tiempo que no recibía actualizaciones (abandonado por el autor), así que decidí utilizar un theme nuevo.
    Aún así se sigue produciendo el error.
    Agregué entonces el plugin Query monitor para ver si podía identificar qué está fallando, y me da la siguiente línea de error PHP:

    Undefined index: Y_AUTH 1 wp-config.php(2) : runtime-created function(1) : eval()’d code:1

    Tengo también el código que aparece al clicar la URL. Aparece junto al logotipo, y el resto de la página está en blanco, salvo el código informando del error, pero como es muy extenso sólo pongo aquí las primeras líneas:

    Fatal error: Uncaught Error: Call to undefined function wp_get_nav_menu_object()
    in /hosting/www/sember.cat/public/wp-includes/nav-menu-template.php on line 125

    Pila de llamadas:

    wp_nav_menu()
    wp-content/themes/astra/inc/markup-extras.php:850
    astra_primary_navigation_markup()
    wp-includes/class-wp-hook.php:287
    WP_Hook::apply_filters()
    wp-includes/class-wp-hook.php:311
    (sigue…)

    Decir también que todos los plugins están actualizados, corriendo WP 5.5, y que para probar si era algún plugin que estaba fallando los desactivé todos, y aún así el error se mantiene cada vez que cambio PHP a 7.4

    Alguna idea sobre qué es lo que está fallando?
    Gracias anticipadas!

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 15 respuestas - de la 1 a la 15 (de un total de 33)
  • Moderador almendron

    (@almendron)

    Prueba pero activando uno de los temas que trae por defecto WordPress. Por el tipo de error, parece que el tema podría ser el causante.

    Silvio

    (@sember)

    Hola, buenas noches almendron, gracias por la sugerencia.
    Probado, mismo error.
    Me imaginé que pasaría; estaba utilizando Astra, con más de un millón de usuarios.
    Cambié por un momento a twenty twenty, theme de respaldo, pasa lo mismo.
    No creo que sea el theme ni un plugin (los mantuve a todos inactivos e incluso fui activando uno a uno de forma independiente para ver si localizaba el fallo).
    Nada.
    A mi me sigue intrigando la lín4ea:
    Fatal error: Uncaught Error: Call to undefined function wp_get_nav_menu_object()
    in /hosting/www/sember.cat/public/wp-includes/nav-menu-template.php on line 125

    Todo lo que dice esa línea es:
    $menu = wp_get_nav_menu_object( $args->menu );

    Aparentemente no hay error de sintaxis, pq el editor me alertaría.
    Entonces, el error debería ser a dónde apunta ¿estoy en lo cierto?
    A ver si esto nos ayuda.
    Otra vez ¡gracias!

    Moderador almendron

    (@almendron)

    Es que el error no está en «nav-menu-template.php» sino en algún otro archivo que utiliza la función «wp_get_nav_menu_object».

    Comprueba los menús a ver si hay algún problema en ellos. Prueba a borrarlos y luego comprueba.

    Silvio

    (@sember)

    Bien! Vamos mejor!
    Al deshabilitar el menú (para no borrarlo), la página se desconfigura (como es natural) pero se publica, en cambio lo que falla es el acceso a WP.
    Devuelve el siguiente error:

    Fatal error: Uncaught Error: Call to undefined function wp_get_nav_menu_object()
    in /hosting/www/sember.cat/public/wp-includes/nav-menu.php on line 67

    Pila de llamadas:

    is_nav_menu()
    wp-admin/nav-menus.php:515

    En la línea 67 está:
    $menu_obj = wp_get_nav_menu_object( $menu );

    ¿qué opinas, almendron?
    Gracias otra vez.

    Silvio

    (@sember)

    Hola de nuevo, sigo:
    Finalmente, al ver que efectivamente ahí hay un problema, posiblemente el causante del error, borré el menú.
    Aparentemente todo funciona, ahora voy a rehacerlo y después comento el resultado.

    Silvio

    (@sember)

    Hecho; todo funciona menos la creación de menús, que da error.
    Aunque está localizado, no sé qué hacer, tal vez volver a instalar la versión 5.5 de WP?
    ¿qué opinas?
    Gracias una vez más.

    Moderador almendron

    (@almendron)

    Hay que volver a comprobar:

    1) Elimina todos los menús

    2) Desactiva todos los plugins.

    3) Cambia de tema

    4) Crea un menú.

    Silvio

    (@sember)

    Prueba realizada.
    Menú borrado, plugins desactivados y cambio al tema Twenty Twenty.

    Exactamente igual, la página funciona bien, el WP también, salvo cuando clico en Apariencia => Menús que es cuando se produce el error:

    Ha habido un error crítico en tu web. Por favor, revisa el buzón del correo electrónico de administración de tu sitio para instrucciones.

    Aprende más sobre la depuración en WordPress.

    Por cierto, con la depuración no me atrevo…

    Insisto, no es la web la que falla, sino el WP

    También he probado a reinstalar WP 5.5
    ¿qué más podemos hacer?

    Moderador almendron

    (@almendron)

    Silvio

    (@sember)

    Hecho!
    Ahora, ¿qué más?

    Moderador almendron

    (@almendron)

    Comprueba si ahora los menús funcionan correctamente.

    Silvio

    (@sember)

    No, se mantiene el comportamiento. Si activo PHP 7.4 la página da error, y WP también si clico en Apariencia => Menus

    Silvio

    (@sember)

    Hola almendron, buenos días!
    Gracias por todo el trabajo que te estás tomando para ayudarme.
    No entiendo el funcionamiento de enable-jquery-migrate-helper pero lo hago así:

    – Cambio PHP a 7.4
    – Le doy a Solucionar problemas en el plugin
    – Voy a la web y me devuelve una hoja en blanco sin nada de nada.
    – Voy de nuevo al plugin y le doy a Desactivar el modo de diagnóstico
    – Voy a la web y me devuelve el error original
    ¿quieres que envíe todo el contenido del error?

    Mientras tanto voy a volver a 7.3 pero si quisieras probar, me lo dices y la dejo en 7.4
    Saludos

    Moderador almendron

    (@almendron)

    ¿Estamos hablando del plugin «Enable jQuery Migrate Helper»? ¿Dónde te sale lo de «solucionar problemas»?

    Silvio

    (@sember)

    Hola, sí, estamos hablando de ese plugin.
    Por si deseas comprobar, en la columna derecha, «Descripción», pone:
    Enable support for old and outdated plugins and themes during a jQuery update transitional phase.
    Versión 1.0.1 | Por The WordPress Team | Ver detalles

    Justo debajo del nombre, en la página de plugins, hay dos botones: Desactivar y Solucionar problemas.

    Es éste último el que he clicado. Inmediatamente después sale la página de plugins con todos los plugins desactavdos menos ese, y una advertencia arriba con un botón para revertirlo después de las comprobaciones y desactivar el modo diagnóstico.

Viendo 15 respuestas - de la 1 a la 15 (de un total de 33)
  • Debes estar registrado para responder a este debate.