Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt mein WordPress-Ajax-Aufruf „0“ zurück?

Warum gibt mein WordPress-Ajax-Aufruf „0“ zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 00:49:29617Durchsuche

Why Does My WordPress Ajax Call Return

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:

  1. 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>
  2. 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.

  1. 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn