Menyelesaikan masalah Panggilan Ajax dalam WordPress: Mengapa Output Anda "0"
Dalam WordPress, membuat panggilan Ajax boleh menjadi mudah, tetapi kadangkala isu boleh timbul. Satu masalah biasa ialah apabila panggilan Ajax mengembalikan "0" sebagai output, walaupun memberikan nilai yang berbeza.
Isu ini disebabkan oleh kekurangan pembolehubah ajaxurl di bahagian hadapan WordPress. Walaupun WordPress mentakrifkan pembolehubah ini di bahagian belakang, ia tidak melakukannya di bahagian hadapan, di mana panggilan Ajax anda dilaksanakan.
Penyelesaian: Setempatkan Fail JavaScript Anda
Kepada menyelesaikan masalah ini, anda perlu menentukan pembolehubah ajaxurl dalam kod bahagian hadapan anda. Ini boleh dilakukan menggunakan fungsi wp_localize_script, yang mengaitkan data dengan skrip setempat.
Begini cara untuk melakukannya:
Enqueque Your JavaScript File:
<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>
Lokalkan Skrip:
<code class="php">wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );</code>
Kod ini akan mencipta objek global yang dipanggil my_ajax_object dalam skrip Ajax anda, yang mengandungi pembolehubah ajaxurl.
Gunakan Pembolehubah ajaxurl dalam Panggilan Ajax Anda:
<code class="javascript">jQuery.ajax({ type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });</code>
Dengan menggunakan my_ajax_object.ajax_url, anda kini boleh membuat panggilan Ajax ke titik akhir WordPress yang betul dan menerima output yang dijangkakan.
Atas ialah kandungan terperinci Mengapa Panggilan Ajax WordPress Saya Mengembalikan \'0\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!