Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Panggilan Ajax WordPress Saya Mengembalikan \'0\'?

Mengapa Panggilan Ajax WordPress Saya Mengembalikan \'0\'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 00:49:29679semak imbas

Why Does My WordPress Ajax Call Return

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:

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

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

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn