Soporte » Guías – Resolución de problemas » Problema con archivo class-wp-hook

  • Hola buenas,
    Hace un par de dias al cargar mi página me salta un error en la parte superior: Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in /var/www/vhosts/comersa.es/httpdocs/wp-includes/class-wp-hook.php on line 298
    He renombrado la carpeta de los plugins y he probado a desactivar algunos plugins y me siguen saliendo ese error.
    A que es debido?
    Gracias

Viendo 15 respuestas - 1 de 15 (de 15 total)
  • Moderador josearcos

    (@josearcos)

    Hola @c4rr1ll0, es posible que ese error no se deba a un plugin sino al tema. ¿Puedes activar el debug y colgar aquí el log completo? Para activar el debug sigue los pasos aquí:

    https://codex.wordpress.org/es:Depurar_en_WordPress

    Saludos

    Hola buenas,
    Acabo de activarlo (true) y al cargar la página me sale esto:
    Notice: Undefined offset: 0 in /var/www/vhosts/comersa.es/httpdocs/wp-includes/plugin.php on line 888 Notice: Undefined offset: 0 in /var/www/vhosts/comersa.es/httpdocs/wp-includes/plugin.php on line 906 Notice: ¡El método de llamada al constructor WP_Widget en wpv_authors está obsoleto desde la versión 4.3.0! Utiliza

    __construct()

    en su lugar. in /var/www/vhosts/comersa.es/httpdocs/wp-includes/functions.php on line 3894 Notice: ¡El método de llamada al constructor WP_Widget en widget_comments está obsoleto desde la versión 4.3.0! Utiliza

    Moderador LGrusin

    (@lgrusin)

    Tal como ha dicho @josearcos el código que usa el tema es obsoleto. Actualiza el tema o en su lugar intenta modificarlo si sabes. Aquí tienes hilos relacionados con lo mismo
    https://es.wordpress.org/support/topic-tag/wp_widget/

    Un saludo

    Hola buenas,
    El tema esta actualizado a la version 4.8
    Pero sigue apareciendo ese mensaje
    Gracias

    Moderador LGrusin

    (@lgrusin)

    Actualiza WordPress, tema y plugins a sus últimas versiones. Ten en cuenta que la última versión de algo no significa que sea reciente. Es decir, las últimas versiones deben ser del año en curso y no de hace 2 años.

    Si no es el tema, empieza a desactivar plugins a ver si alguno es el culpable.

    En el enlace anterior tienes la solución si te decides a modificar los archivos del tema. Sin saber de que tema se trata es imposible ayudar más.

    Un saludo

    • Esta respuesta fue modificada hace 5 meses por  LGrusin.
    c4rr1ll0

    (@c4rr1ll0)

    WordPress esta actualizado a su ultima version 4.8, voy a tratar de volver actualziarlo pero manualmente.
    Los plugins los estube desactivando uno por uno y sigue fallando.
    El tema es un base-theme. Intenté desactivarlo y activar el twenty pero seguia lanzado la misma linea de error.
    Gracias

    Moderador josearcos

    (@josearcos)

    Hola @c4rr1ll0, como es un warning lo que te aparece prueba a desactivar el debug, no es un error grave así que la página debería funcionarte. Para desactivar el debug ve al fichero wp-config.php y edita la línea
    define( 'WP_DEBUG', true );
    a
    define( 'WP_DEBUG, false);

    Moderador josearcos

    (@josearcos)

    Y otra pregunta, ¿qué versión de PHP tienes?

    Saludos.

    c4rr1ll0

    (@c4rr1ll0)

    Hola buenas, asi esta desactivado pero sigue saliendo la linea de error : Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in /var/www/vhosts/comersa.es/httpdocs/wp-includes/class-wp-hook.php on line 298
    La version de PHP que utilizo es la 5.3.3.

    c4rr1ll0

    (@c4rr1ll0)

    Hola buenaa,
    Acabo de actualizar a la version 5.6.3 pero aun asi me sigue saliendo esa linea de error

    Moderador josearcos

    (@josearcos)

    Hola de nuevo @c4rr1ll0, ¿puedes activar el debug y pegarnos aquí el log entero?
    Veamos si hay algo que está fallando además de ese error.

    Saludos.

    c4rr1ll0

    (@c4rr1ll0)

    Hola,
    Te agrego lo que me aperece
    Notice: ¡El método de llamada al constructor WP_Widget en wpv_authors está obsoleto desde la versión 4.3.0! Utiliza

    __construct()

    en su lugar. in /var/www/vhosts/comersa.es/httpdocs/wp-includes/functions.php on line 3894

    • Esta respuesta fue modificada hace 5 meses por  c4rr1ll0.
    c4rr1ll0

    (@c4rr1ll0)

    Hola buenas,
    ALguna idea?

    Moderador LGrusin

    (@lgrusin)

    Yo creo que ya te hemos dado las posibles causas. Lo más fácil es probar con uno de los temas que viene con WordPress, es la única forma de saber si el tema actual que usas tiene código obsoleto.

    Contacta con el desarrollador del tema que tienes puesto que han hecho modificaciones y no tenemos acceso al tema original.

    Un saludo

    • Esta respuesta fue modificada hace 5 meses por  LGrusin.
    Moderador josearcos

    (@josearcos)

    Hola de nuevo @c4rr1ll0, como comenta @lgrusin parece ser un problema del theme, por lo que leo en el error que has puesto hay un widget que usa el constructor antiguo, tendrás que modificarlo tu mismo. Busca la clase wpv_authors entre tus archivos del tema, y luego cambia el constructor por la nueva forma que es:

        function __construct() {
     
            parent::__construct(
                'my-text',  // Base ID
                'My Text'   // Name
            );
     
            add_action( 'widgets_init', function() {
                register_widget( 'My_Widget' );
            });
     

    Si has desactivado todos los plugins y cambiado a un theme como twentysixteen no debería darte ese error. Por favor, sigue los pasos de nuevo o busca el código que te he mencionado anteriormente.

    Saludos.

Viendo 15 respuestas - 1 de 15 (de 15 total)
  • Debes estar registrado para responder a este tema.