Appels Ajax dans WordPress : dépannage des problèmes de sortie
Votre appel ajax renvoie toujours 0 en sortie, vous laissant perplexe quant à la cause. Pour résoudre ce problème, considérez ce qui suit :
Variable ajaxurl globale dans WordPress :
WordPress définit la variable ajaxurl globale dans le backend, ce qui facilite les appels AJAX. Cependant, cette variable n'est pas disponible dans le frontend.
Définir ajaxurl dans le frontend :
Pour utiliser les appels AJAX dans le frontend, vous devez définir manuellement la variable ajaxurl . Une méthode efficace consiste à utiliser wp_localize_script.
Utilisation de wp_localize_script :
En supposant que vos appels AJAX résident dans my-ajax-script.js, utilisez wp_localize_script comme suit :
function my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );
Cela crée un objet my_ajax_object dans votre fichier JS, qui contient l'ajax_url.
Utilisez my_ajax_object en Javascript :
Après avoir localisé votre script, utilisez l'objet my_ajax_object dans votre fichier JS :
<code class="js">jQuery.ajax({ type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!