Saltar al contenido

El método constructor llamado para WP_Widget está obsoleto desde la versión 4.3.0

Nuestro equipo de expertos despúes de muchos días de trabajo y de recopilar de información, dimos con la solución, nuestro deseo es que te sea útil en tu trabajo.

Solución:

Dado que php 7 ya no es compatible, la antigua construcción de objetos php 4 se reemplazó con __construct(). Los desarrolladores de Wordpress crearon un mensaje de aviso para que los desarrolladores de complementos cambiaran la forma en que funcionan sus complementos (y también para que pudiera ejecutarse en las próximas versiones de php). Dado que php 4 lleva mucho tiempo muerto, no hay razón para usar este estilo de construcción de objetos.

¿Como arreglar?

Opción 1: no voy a actualizar a versiones más nuevas de php

solo agrega
add_filter('deprecated_constructor_trigger_error', '__return_false');

a su archivo functions.php ignorará esos avisos.

Opción 2: podría actualizar a php 7 / preferir tratar el problema en lugar de silenciarlo

Si se trata de un complemento de terceros, tenga en cuenta que si realiza el cambio usted mismo y el desarrollador del complemento publica una actualización, anulará sus cambios. Ponerse en contacto con el desarrollador del complemento para solucionar este problema será la mejor opción.

Encuentre el complemento problemático y cambie:

parent::WP_Widget

A

parent::__construct

También recibo el mismo error y lo arreglé de tal manera

class Dokan_Category_Widget extends WP_Widget 

    /**
     * Constructor
     *
     * @return void
     **/
    public function __construct() 
        $widget_ops = array( 'classname' => 'dokan-category-menu', 'description' => __( 'Dokan product category menu', 'dokan' ) );
        $this->WP_Widget( 'dokan-category-menu', 'Dokan: Product Category', $widget_ops );
    

Como la forma de llamar al constructor de esa manera está en desuso en php 7, por lo que reemplacé la forma de llamar como $this->WP_Widget() con parent::__construct()

class Dokan_Category_Widget extends WP_Widget 

    /**
     * Constructor
     *
     * @return void
     **/
    public function __construct() 
        $widget_ops = array( 'classname' => 'dokan-category-menu', 'description' => __( 'Dokan product category menu', 'dokan' ) );
        //$this->WP_Widget( 'dokan-category-menu', 'Dokan: Product Category', $widget_ops );
        parent::__construct('dokan-category-menu', 'Dokan: Product Category', $widget_ops  );
    

Supongo que está usando algún complemento que no se actualiza después de las actualizaciones de wordpress y tiene algún código como class ***_Widget extends WP_Widget { .debes actualizar ese plugin o desactivarlo hasta que se actualice.

Puedes añadir valor a nuestra información dando tu experiencia en las crónicas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *