J'utilise donc cette configuration pour un appel AJAX dans la zone administrative ( comme ceci ):
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();
}
C'est juste un code de test, mais il retourne toujours 0 au lieu de la chaîne "attivato". Il trouve également l'url ajax correctement, sans erreur 404.
Quel est le problème?
wp_ajax_my_action
partie "my_action" doit correspondre à l'action utilisée dans le post jQuery. Je vois que le vôtre correspond, donc ce n'est pas le problème dans votre cas. Je le fais également fonctionner depuis la page d'administration, ce que vous essayez de faire. Êtes-vous connecté lorsque vous essayez de passer cet appel ajax? Ou êtes-vous déconnecté?