Ajax-Aufrufe in WordPress: Fehlerbehebung bei Ausgabeproblemen
Ihr Ajax-Aufruf gibt immer 0 als Ausgabe zurück, sodass Sie über die Ursache ratlos sind. Um dieses Problem zu beheben, beachten Sie Folgendes:
Globale Ajaxurl-Variable in WordPress:
WordPress definiert die globale Ajaxurl-Variable im Backend, was AJAX-Aufrufe erleichtert. Diese Variable ist jedoch im Frontend nicht verfügbar.
Ajaxurl im Frontend definieren:
Um AJAX-Aufrufe im Frontend zu verwenden, müssen Sie die Ajaxurl-Variable manuell definieren . Eine effektive Methode ist wp_localize_script.
Verwendung von wp_localize_script:
Angenommen, Ihre AJAX-Aufrufe befinden sich in my-ajax-script.js, verwenden Sie wp_localize_script wie folgt:
function my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );
Dadurch wird ein my_ajax_object-Objekt in Ihrer JS-Datei erstellt, das die ajax_url enthält.
Verwenden Sie my_ajax_object in Javascript:
Nachdem Sie Ihr Skript lokalisiert haben, verwenden Sie es das my_ajax_object-Objekt in Ihrer JS-Datei:
<code class="js">jQuery.ajax({ type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });</code>
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!