Fehlerbehebung bei Ajax-Aufrufen in WordPress: Warum Ihre Ausgabe „0“ ist
In WordPress kann das Tätigen von Ajax-Aufrufen unkompliziert sein, aber manchmal gibt es Probleme entstehen kann. Ein häufiges Problem besteht darin, dass ein Ajax-Aufruf „0“ als Ausgabe zurückgibt, obwohl ein anderer Wert übergeben wird.
Dieses Problem wird durch das Fehlen der Ajaxurl-Variable im Frontend von WordPress verursacht. Während WordPress diese Variable im Backend definiert, tut sie dies nicht im Frontend, wo Ihre Ajax-Aufrufe ausgeführt werden.
Lösung: Lokalisieren Sie Ihre JavaScript-Datei
An Um dieses Problem zu beheben, müssen Sie die Variable ajaxurl in Ihrem Frontend-Code definieren. Dies kann mit der Funktion wp_localize_script erfolgen, die Daten einem lokalisierten Skript zuordnet.
So geht's:
Stellen Sie Ihre JavaScript-Datei in die Warteschlange:
<code class="php">function my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );</code>
Das Skript lokalisieren:
<code class="php">wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );</code>
Dieser Code erstellt ein globales Objekt namens my_ajax_object in Ihrem Ajax-Skript, das die Variable ajaxurl enthält.
Verwenden Sie die Variable ajaxurl in Ihrem Ajax-Aufruf:
<code class="javascript">jQuery.ajax({ type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });</code>
Durch die Verwendung von my_ajax_object.ajax_url können Sie jetzt Ajax-Aufrufe an den richtigen WordPress-Endpunkt tätigen und die erwartete Ausgabe erhalten.
Das obige ist der detaillierte Inhalt vonWarum gibt mein WordPress-Ajax-Aufruf „0' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!