get_option Fehler Plugin-Entwicklung

Ich erstelle ein Plugin mit folgender Struktur:

plugins (folder) - myplugin (folder) - myplugin_index.php (adminpanel file) - myplugin_ajax.php (loading data when user enters a form on the "start page") themes (folder) - mytheme (folder) - template_my_own.php (this file have the form which calls the myplugin_ajax.php) 

Das Plugin funktioniert gut aus der Sicht des Admin-Panels. Ich habe Daten über das Plugin vom Admin-Panel hinzugefügt.

Aber wenn ich versuche, über das Formular in der Datei template_my_own.php auf Daten zuzugreifen, erhalte ich folgende Fehlermeldung:

 PHP Fatal error: Call to undefined function get_option() in /var/www/example.com/wwwroot/wp-content/plugins/myplugin/myplugin_ajax.php on line 14, referer: http://example.com/ 

Ich habe die Lösungen von beiden Seiten ausprobiert.

Aber keiner von ihnen funktioniert. Mein Code sieht so aus:

   $from) { if($from  $square) { echo $from; echo '
TESTTESTTEST'; echo $to; } } ?>

Wie soll ich das lösen und was mache ich falsch?

Solutions Collecting From Web of "get_option Fehler Plugin-Entwicklung"

Wie Plugins geladen werden

WordPress hat wie jede andere Software eine bestimmte Reihenfolge, in der Dateien geladen werden. Während des Ladens von WPs-coredateien gibt es bestimmte Punkte, an denen Sie sich während des apply_filters() do_action() entweder in do_action() oder Daten ändern können. Diese functionen werden immer mit mindestens einem Argument aufgerufen: Der Name. Manchmal gibt es mehr Argumente, die dann die callbacke sind.

Der Punkt ist, dass Sie auf bestimmte Hooks warten müssen, um einige Teile der öffentlichen API verfügbar zu haben.

Die Regel…

Führen Sie niemals Code aus, ohne ihn in eine function oder Methode (den erwähnten Callback) einzubinden, die Sie dann haken. Weitere Informationen zur Reihenfolge, in der diese Hooks angezeigt werden, finden Sie im Codex und in der API & Aktionsreferenz des Plugins .

Sie sollten Ihre function an die WordPress AJAX API anschließen.

 function your_ajax_function() { // your Script here } add_action( 'wp_ajax_your_ajax_function', 'your_ajax_function' ); add_action( 'wp_ajax_nopriv_your_ajax_function', 'your_ajax_function' ); // Skip this line if you want the AJAX just for logged in users 

Jetzt können Sie Ihre function einfach über Javascript aufrufen:

 var data = { action: 'your_ajax_function', your_data: 'datatosubmit' }; $.post(ajaxurl, data, function(response) { // what to do with your response }); 

Seien Sie sicher, dass Ajaxurl definiert ist. Normalerweise ist es http://www.yoursite.com/wp-admin/admin-ajax.php , aber das hängt von Ihrem WordPress-Setup ab.

Wenn Sie diese Methode verwenden, stehen Ihnen alle WordPress-functionen für Ihren AJAX-Anruf zur Verfügung.

Sie müssen WordPress geladen haben. Etwas in dieser Richtung:

< ?php include '../../../wp-load.php'; ?>

aber das ist nicht ratsam. Ich nehme an, du willst Ajax machen? Wenn dies der Fall ist, machen Sie es wie folgt: http://ottopress.com/2010/dont-include-wp-load-please/