Maison > Article > développement back-end > Pourquoi mon appel WordPress Ajax renvoie-t-il « 0 » ?
Dépannage des appels Ajax dans WordPress : pourquoi votre sortie est « 0 »
Dans WordPress, passer des appels Ajax peut être simple, mais parfois des problèmes peut survenir. Un problème courant survient lorsqu'un appel Ajax renvoie "0" comme sortie, malgré le passage d'une valeur différente.
Ce problème est dû à l'absence de la variable ajaxurl dans l'interface de WordPress. Bien que WordPress définisse cette variable dans le backend, il ne le fait pas dans le frontend, où vos appels Ajax sont exécutés.
Solution : Localisez votre fichier JavaScript
Pour pour résoudre ce problème, vous devez définir la variable ajaxurl dans votre code frontend. Cela peut être fait à l'aide de la fonction wp_localize_script, qui associe les données à un script localisé.
Voici comment procéder :
Mettez votre fichier JavaScript en file d'attente :
<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>
Localiser le script :
<code class="php">wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );</code>
Ce code créera un objet global appelé my_ajax_object dans votre script Ajax, qui contient la variable ajaxurl.
Utilisez la variable ajaxurl dans votre Ajax Appel :
<code class="javascript">jQuery.ajax({ type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });</code>
En utilisant my_ajax_object.ajax_url, vous pouvez désormais effectuer des appels Ajax vers le point de terminaison WordPress correct et recevoir le résultat attendu.
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!