it-swarm.com.de

Die aufgerufene Konstruktormethode für WP_Widget ist seit Version 4.3.0 veraltet

Ich habe gerade ein Update auf WordPress 4.3 durchgeführt und es scheint, dass etwas kaputt ist.

Ich erhalte diese Fehlermeldung, die auf meiner Seite angezeigt wird:

Hinweis: Die aufgerufene Konstruktormethode für WP_Widget ist seit Version 4.3.0 veraltet! Verwenden Sie stattdessen __construct(). in /mnt/stor13-wc1-ord1/754452/www.eden-festival.com/web/content/securewp/wp-includes/functions.php in Zeile 3457

Gibt es etwas, das behoben werden muss?

18
aniruddh

Da php 7 das alte php 4-Objektkonstrukt nicht mehr unterstützt und durch __construct() ersetzt wurde, erstellten Wordpress-Entwickler eine Ankündigungsnachricht, so dass die Plugin-Entwickler die Funktionsweise ihrer Plugins ändern würden, sodass sie mit den nächsten PHP-Versionen ausgeführt werden können und PHP 4 als tot gilt Vor einiger Zeit gibt es keinen Grund, diesen Stil des Objektkonstrukts zu verwenden.

Wie repariert man?

Option 1 - Upgrade auf neuere PHP-Versionen nicht möglich

einfach hinzufügen add_filter('deprecated_constructor_trigger_error', '__return_false');

in Ihrer functions.php-Datei werden diese Hinweise ignoriert.

Option 2 - Upgrade auf php 7/lieber mit dem Problem befassen als stummschalten

Wenn es sich hierbei um ein Plugin eines Drittanbieters handelt, sollten Sie darauf achten, dass Sie die Änderungen außer Kraft setzen, wenn Sie die Änderung selbst vornehmen und der Plugin-Entwickler ein Update freigibt. Wenn Sie den Plugin-Entwickler kontaktieren, um dieses Problem zu beheben, ist dies die beste Option

Finden Sie das problematische Plugin und ändern Sie es

parent::WP_Widget

Zu 

parent::__construct

37
Gal

Ich bekomme auch den gleichen Fehler Und ich habe es so behoben 

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 );
    }
}

Wie der Aufruf von Konstruktoren auf diese Weise in php 7 nicht mehr empfohlen wird, ersetzte ich den Aufruf als $this->WP_Widget() durch 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  );
    }
}
12
Ganesh

Ich nehme an, Sie verwenden ein Plugin, das nach Wordpress-Updates nicht aktualisiert wird und Code wie class ***_Widget extends WP_Widget {. Sie sollten dieses Plugin aktualisieren oder deaktivieren, bis es aktualisiert wird.

2

Durch das Deklarieren einer Funktion und das Aufrufen des übergeordneten Konstruktors wurde dieses Problem behoben.

class myClass extends WP_Widget {
  function __construct(){
     parent::__construct(...) // calls constructor from WP_Widget class
  }
}
0
coletrain