Warnung / Fehler im Admin-Panel beim Entwickeln des Designs

Ich entwickle ein Thema für meine Website. Sobald ich das Thema aktiviert habe, erscheinen die folgenden Fehler / Warnungen oben auf dem Admin-Panel auf jeder Seite.

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method WPEditorAdmin::removeDefaultEditorMenus() should not be called statically in C:\Users\...\wp-includes\plugin.php on line 406 Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method WPEditorAdmin::buildAdminMenu() should not be called statically in C:\Users\...\wp-includes\plugin.php on line 406 Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method WPEditorAdmin::addThemesPage() should not be called statically in C:\Users\...\wp-includes\plugin.php on line 406 Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method WPEditorAdmin::editorStylesheetAndScripts() should not be called statically in C:\Users\...\wp-includes\plugin.php on line 406 

Ich frage mich, wie ich diese Fehler löse und nicht mehr passiert? Hier ist ein Screenshot.

Bildbeschreibung hier eingeben

Solutions Collecting From Web of "Warnung / Fehler im Admin-Panel beim Entwickeln des Designs"

Du hast also deinen Code in einer class, sagen wir mal so …

 < ?php class WPSE82245 { public function action_init() { // do stuff } } 

Jetzt versuchst du es in etwas einzuhaken ...

 add_action('init', 'array('WPSE82245', 'action_init')); 

Was passiert, wenn der init Hook ausgetriggers wird, versucht WordPress, Ihre Methode aufzurufen. Es wäre ähnlich, wenn du das nur geschrieben hättest ...

 WPSE82245::action_init(); 

Aber PHP mag das nicht, weil Sie Ihre Methode nicht als static deklariert haben, dh ohne eine Instanz ihrer Containerklasse (wie im obigen Beispiel).

Dies macht Sinn, wenn Sie $this in Ihrer Methode verwenden? Ein statischer Aufruf würde zu einem Laufzeiterrors führen, der besagt, dass $this außerhalb eines Objektkontexts verwendet wurde.

Sie können die Fehler entfernen, indem Sie Ihre Methode für statisch erklären ...

 < ?php class WPSE82245 { public static function action_init() { // do stuff } } 

Oder verwenden Sie eine Instanz Ihrer class als erstes Element des Arrays das aufrufbare Argument add_action .

 < ?php class WPSE82245 { public function action_init() { // do stuff } } $cls = new WPSE82245(); add_action('init', array($cls, 'action_init')); 

Das obige ist nur ein Beispiel, es gibt viele verschiedene Möglichkeiten , eine class in einem WordPress Theme / Plugin zu instanziieren.