2015-09-30 3 views
12

ich nur 4,3 bis Wordpress aktualisiert und es scheint, dass etwas gebrochen ist.Der gerufene Konstruktor für WP_Widget ist seit Version veraltet 4.3.0

ich diesen Fehler, der auf meiner Seite zeigt nach oben:

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

Gibt es etwas, das behoben werden muss ?

+0

Sie haben eine veraltete Funktion in Ihrer 'functions.php' sollten Sie das ändern. Wenn Sie Hilfe benötigen, müssen wir den Code sehen. – DocRattie

+0

Das ist seltsam .. Ich habe gerade meine functions.php-Datei in meinem wp-Includes-Ordner in dieser Zeile .. und es ist keine Konstruktor-Methode aufgerufen .. obwohl es landet direkt in der Funktion, die die Fehlermeldung in angezeigt der Administrator Das stimmt nicht, oder? – Lee

Antwort

24

Da php 7 das alte php 4 Objekt Konstrukt nicht mehr unterstützt und durch __construct() ersetzt wurde, haben Wordpress Entwickler eine Nachricht erstellt, damit die Plugin Entwickler die Funktionsweise ihrer Plugins ändern und auf den nächsten PHP Versionen und als PHP laufen können 4 ist längst tot, es gibt keinen Grund, diese Art von Objektkonstrukt zu verwenden.

Wie beheben zu?

Option 1 - wird nicht

fügen Sie einfach add_filter('deprecated_constructor_trigger_error', '__return_false');

zu functions.php auf neuere PHP-Versionen Upgrade-Datei wird es diese Hinweise ignorieren.

Option 2 - könnte ein Upgrade 7/lieber Umgang mit dem Thema php dann

Silencing

Wenn dies ein Dritter Plugin ist, passen Sie auf, wenn Sie machen die Änderung selbst und das Plugin Entwickler ein Update geben sie Ihre changes.Contacting das Plugin Entwickler außer Kraft gesetzt wird, dieses Problem zu beheben, wird die beste Option

Finden sie die problematische Plugi sein n und

parent::WP_Widget

Um

parent::__construct

+1

Wenn dies ein Plugin von Drittanbietern ist, passen Sie darauf hin, dass wenn Sie die Änderung selbst vornehmen und ein Update durchführen, das das nicht beinhaltet .. es wird die von Ihnen vorgenommene Änderung rückgängig machen. Sie sollten sich an den Plugin-Autor wenden und diesbezüglich ein Update anfordern. – Lee

+0

Danke Gal, aber ich löste mein Problem einfach bearbeiten Zeile in wp-config file.i einfach falsch im Debug-Modus und jetzt alles ist in Ordnung, meine Website und mein Admin-Panel. – aniruddh

+0

@aniruddh gut Sie wahrscheinlich nur die Warnung zum Schweigen gebracht, die die gleiche wie Option 1 ist, würde ich immer noch den Entwickler kontaktieren, wie ich denke, Sie hätten gerne PHP 7, wenn es raus ist. – Gal

1

ändern Ich denke, Sie einige Plugins verwenden, die nicht nach dem Wordpress-Updates aktualisiert und einige Code wie class ***_Widget extends WP_Widget { mit .Sie sollten diese Plugin aktualisieren oder deaktivieren es bis es aktualisiert wird.

-2

ich dieses Problem erlebt und ich fand durch die ‚wahre‘ Erklärung zu ändern, um ‚falsch‘ in /wp-includes/functions.php es die Fehler deaktiviert.

if (WP_DEBUG & & apply_filters ( 'deprecated_constructor_trigger_error', true)) {

+1

KERN-Dateien NICHT ändern! – wpdaniel

0

eine Funktion dann Deklarieren der Mutter Konstruktor aufgerufen für mich, dieses Problem behoben.

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

ich auch die gleichen Fehler Und ich regelte es in einer solchen Art und Weise

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

Als Weg Konstruktor Aufruf in einer solchen Art und Weise in PHP-7 ist veraltet, so dass ich ersetzt Aufruf Art und Weise, wie $this->WP_Widget() mit 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 ); 
    } 
} 
Verwandte Themen