Aufruf der undefinierten Funktion add_options_page()

Lesezeit: 3 Minuten

Benutzer-Avatar
Zheka

Ich habe das Plugin für mein WordPress-Projekt entwickelt. Ich habe es erfolgreich auf meinem lokalen xampp-Server mit 5.3 php getestet. Dann habe ich mein Projekt mit php 5.2 auf das Webhosting hochgeladen. Das erste Problem, mit dem ich konfrontiert war, war die Nichtunterstützung anonymer Funktionen in PHP 5.2. Kein Problem, ich habe alle Funktionen mit Namen neu deklariert. Aber dann bekam ich den Fehler Call to undefined function add_options_page(), den ich nicht erklären konnte. Bitte helfen Sie mir mit Ihren Ratschlägen

Mein Teil des Codes:

function mainPage(){
        ///some code
        }

function mainPage2(){

    add_options_page('Submissions of MAIN page contact form', 'Submissions of MAIN page contact form', 'manage_options','ea_submissions2', mainPage());

    }
add_action('admin_menu',mainPage2());

Ich denke, dass etwas mit meinen Funktionen nicht stimmt, sehen Sie es bitte durch.
Es gibt kein Problem mit PHP 5.2, wie ich dachte, dieser Teil des Codes funktioniert auch nicht mit PHP 5.3! Irgendwas stimmt mit meinem Code nicht

  • Welche PHP-Version verwendest du? Welche WP-Version? Wenn die Seite alt ist und auf PHP 4 läuft, dann ist Ihre WP-Version alt und unterstützt die Funktion add_options_page() möglicherweise nicht.

    – zufälliger_Benutzername

    17. August 2013 um 20:42 Uhr

  • wordpress ist ok, weil es wie gesagt gut auf php 5.3 läuft. Auf dem Webserver mit php 5.2 bekam ich diesen Fehler Call to undefined function add_options_page()

    – Zheka

    17. August 2013 um 20:46 Uhr

  • Ich meinte auf Ihrem Webserver, nicht auf Ihrem Localhost. Wenn Ihr Webserver 5.2 ist, sollten Sie gut sein. Läuft der Rest von WP? Sind Sie sicher, dass Sie einen guten Upload über FTP erhalten haben? Manchmal fehlen einige Dateien während des Uploads oder sind beschädigt.

    – zufälliger_Benutzername

    17. August 2013 um 20:59 Uhr

  • @cale_b Wenn Sie denken, dass meine Funktionen richtig geschrieben sind, ja, scheint das Upload-Problem zu sein, ich versuche, mindestens wp-admin noch einmal hochzuladen. Vielen Dank!

    – Zheka

    17. August 2013 um 21:10 Uhr

  • @cale_b nach dem erneuten Hochladen von wp-admin ist das Problem dasselbe

    – Zheka

    17. August 2013 um 21:12 Uhr

Ich hatte ein ähnliches Problem, es stellte sich heraus, dass ich eine Funktion zu früh ausgeführt habe:

Verwenden admin_init Haken statt init

Hoffentlich hilft das jemandem weiter 😀

Dies funktioniert nicht, weil Sie eine normale Funktion haben, die nicht in eine Klasse eingeschlossen ist, und weil add_options_page zu diesem Zeitpunkt noch nicht funktioniert, erhalten Sie deshalb den Fehler.

Eine Lösung wäre die Verwendung einer anonymen Funktion im Add-Action-Aufruf, aber daher funktioniert das nicht auf PHP 5.2.

Um es kurz zu machen, das lässt sich zwar beheben, aber Sie sollten PHP 5.2 überhaupt nicht mehr ausführen. PHP 5.5 ist bereits in der Entwicklung und 5.3 ist heutzutage faktisch Standard. Eine Lösung besteht darin, Ihr Hosting-Unternehmen zu bitten, PHP auf mindestens 5.3 zu aktualisieren, damit Sie anonyme Funktionen verwenden und es mit dem Aufruf zum Hinzufügen von Aktionen verbinden können.

Oder packen Sie alles in eine Klasse und erstellen Sie mit der Admin-Init-Funktion die neue Klasse.

Sie müssen Ihren Code innerhalb von admin_menu so aufrufen

add_action( 'admin_menu', array(&$this, 'addWidgetSettingsMenu' ));

  • Können Sie erklären, was dort konkret passiert? &$this und addWidgetSettingsMenu?

    – David Gaskin

    2. September 2019 um 1:31 Uhr

Beachten Sie, dass dies eine alte Frage ist, dies ist Ihr Problem:

add_action('admin_menu',mainPage2());

Hier rufen Sie die Funktion mainPage2() auf und fügen den Rückgabewert dieser Funktion als Argument zur Methode add_action hinzu.

Du solltest tun

add_action('admin_menu', 'mainPage2');

Auf diese Weise wird die Funktion mainPage2 aufgerufen, wenn admin_menu passiert.

Probieren Sie es aus, ohne Platz im Titel zu geben: – SubmissionsOfMainPageContactForm

1298360cookie-checkAufruf der undefinierten Funktion add_options_page()

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy