Jadi saya menggunakan konfigurasi ini untuk panggilan AJAX di wilayah administrasi ( seperti ini ):
add_action( 'admin_head', 'ajaxPerNgg' );
function ajaxPerNgg(){ ?>
<script type="text/javascript" >
jQuery(document).ready(function() {
jQuery("#message").remove();
jQuery("#errore a#attivo").click(
function(){
var data = {
action: 'my_action'
};
jQuery.post(ajaxurl, data, function(response) {
if(response == "attivato")
jQuery("#errore a#inattivo").attr("id","completato").html("Attivato");
else
jQuery("#errore a#inattivo").attr("id","attivo").html("Attivalo ora");
});
}
);
});
</script>
<?php }
add_action('wp_ajax_my_action', 'my_action_callback');
function my_action_callback() {
echo 'attivato';
die();
}
Ini hanya kode tes, tetapi selalu mengembalikan 0 bukannya string "attivato". Juga menemukan url ajax dengan benar, tanpa kesalahan 404.
Apa masalahnya?
wp_ajax_my_action
bagian "my_action", harus cocok dengan tindakan yang digunakan dalam posting jQuery. Saya melihat bahwa Anda cocok, jadi itu bukan masalah dalam kasus Anda. Saya juga membuatnya bekerja dari halaman admin, yang sedang Anda coba lakukan. Apakah Anda masuk saat mencoba melakukan panggilan ajax ini? Atau Anda keluar?