ajaxurl non défini sur le frontal
-
-
Consultez cetutoriel.Celapeut vous aider.http://www.1stwebdesigner.com/implement-ajax-wordpress-themes/Check this tutorial. It may help you. http://www.1stwebdesigner.com/implement-ajax-wordpress-themes/
- 0
- 2015-06-03
- Nilambar Sharma
-
3 réponses
- votes
-
- 2015-06-03
Dans lebackend,ilexiste une variableglobale
ajaxurl
définiepar WordPress lui-même.Cette variablen'estpas crééepar WPen frontend. Cela signifie que si vous souhaitez utiliser des appels AJAXen frontend,vous devez définir cette variable vous-même.
Pour cefaire,utilisez
wp_localize_script
.Supposons que vos appels AJAX setrouvent dans lefichier
my-ajax-script.js
,puis ajoutez wp_localize_scriptpour cefichier JS comme ceci: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' );
Après avoir localisé votrefichier JS,vouspouvez utiliser l'objet
my_ajax_object
dans votrefichier JS:jQuery.ajax( { type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });
In backend there is global
ajaxurl
variable defined by WordPress itself.This variable is not created by WP in frontend. It means that if you want to use AJAX calls in frontend, then you have to define such variable by yourself.
Good way to do this is to use
wp_localize_script
.Let's assume your AJAX calls are in
my-ajax-script.js
file, then add wp_localize_script for this JS file like so: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' );
After localizing your JS file, you can use
my_ajax_object
object in your JS file:jQuery.ajax( { type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });
-
puis-je utiliser `wp_localize_script` sans avoir à utiliser` wp_enqueue_script`?can I use `wp_localize_script` without having to use `wp_enqueue_scritp`?
- 2
- 2015-06-03
- dread_cat_pirate
-
Vous utilisez un descripteur de script dans wp_localize_script,vous devez donc utiliser wp_enqueue_scriptpour aumoins un de vos scripts.Mais ... Nepas utiliser wp_enqueue_scriptn'estpas unebonneidée (vous risquez desproblèmes de conflitset de dépendances).You use script handle in wp_localize_script, so you have to use wp_enqueue_script for at least one of your scripts. But... Not using wp_enqueue_script is not a good idea (you risk some conflicts and dependencies problems).
- 1
- 2015-06-05
- Krzysiek Dróżdż
-
Jen'ai aucun scriptexterne à charger,je veuxjuste utiliser ajaxurlpourfaire un appel ajax.n'est-cepaspossible?i don't have any external script to load, i just want to use ajaxurl to make an ajax call. is that not possible?
- 0
- 2015-09-23
- R T
-
Et où allez-vousmettre cet appel AJAX?Comme scripten ligne?C'est unetrèsmauvaiseidée ...And where will you put this AJAX call? As inline script? It's a very bad idea...
- 0
- 2015-09-23
- Krzysiek Dróżdż
-
J'ai unformulaire séparé,en ce sens queje gère la validationet lors de la soumission,un appel ajaxpour soumettre leformulaire avecbien sûr lamanière wordpressen ajoutant un hook.detoutefaçon,j'aitrouvé lemoyen d'utiliser ajaxurl.i've a separate form, in that i'm managing validation and on submit, an ajax call to submit form with of course wordpress way by adding hook. anyway I've figured out the way for using ajaxurl.
- 0
- 2015-09-23
- R T
-
Génial ...je l'utilise dansmon Javascript sur lefront-endet fonctionne comme un charme :)Awesome... I'm using it in my Javascript on front end and works like a charm :)
- 0
- 2017-10-17
- Omer
-
- 2015-09-23
pour utiliser directement ajaxurl,dans votrefichier deplugin ajoutez ceci:
add_action('wp_head', 'myplugin_ajaxurl'); function myplugin_ajaxurl() { echo '<script type="text/javascript"> var ajaxurl = "' . admin_url('admin-ajax.php') . '"; </script>'; }
vouspouvezensuite utiliser
ajaxurl
pour la requête ajax.to use ajaxurl directly, in your plugin file add this:
add_action('wp_head', 'myplugin_ajaxurl'); function myplugin_ajaxurl() { echo '<script type="text/javascript"> var ajaxurl = "' . admin_url('admin-ajax.php') . '"; </script>'; }
you can then use the
ajaxurl
for ajax request.-
Cette réponse rend `ajaxurl` similaire à l'utilisationpar défaut.Ce quiestbien mieux que la réponse acceptée.This answer makes `ajaxurl` similarly the same as the default usage. Which is much better than the accepted answer.
- 2
- 2018-12-25
- Abel Melquiades Callejo
-
vrai,mais c'estinutile si vous l'utilisez dans unfichier .js.true, but it's useless if you are using it in a .js file.
- 0
- 2019-03-20
- Jules
-
@Jules `ajaxurl`esttoujours disponible dans unfichier` * .js`.Pour cefaire,vous devrezpeut-être déclarer la variable `ajaxurl` au début du chargement de lapage.Une autre chose à considérerest l'appel de votrefichierexterne `* .js`.Lefichierexterne doit être appelé ** APRÈS ** que `ajaxurl` a étéinstanciéet recevoir labonne valeur URL.@Jules `ajaxurl` is still available in a `*.js` file. To do so, you may need to declare the `ajaxurl` variable early on of the page load. Another thing to consider is the calling of the external `*.js` file of yours. The external file should be called **AFTER** the `ajaxurl` has been instantiated and be given the right URL value.
- 1
- 2019-11-09
- Abel Melquiades Callejo
-
qu'est-ce qu'uneerreur dans la console?what's an error in console?
- 0
- 2020-01-29
- Dharmishtha Patel
-
- 2020-01-28
J'ai utilisé le code ci-dessous dans le site wordpress.
nouspouvons utiliser le code ci-dessouspour configurer ajaxurl comme ceci.<?php echo esc_url(admin_url('admin-ajax.php')); ?>
J'ai également ajouté unexemple ajax oùnouspouvons utiliser la ligne ci-dessus.
function setNotificationRead() { fetch('<?php echo esc_url(admin_url('admin-ajax.php')); ?>', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' }, body: `action=yourFunctionsAction`, credentials: 'same-origin' }).then(response => { return response.json(); }).then(data => { if (data.status === 'true') { console.log('Do something...'); } }); }
i have use below code in wordpress site.
we can use below code for setup ajaxurl like this.<?php echo esc_url(admin_url('admin-ajax.php')); ?>
i have also added ajax example were we can use above line.
function setNotificationRead() { fetch('<?php echo esc_url(admin_url('admin-ajax.php')); ?>', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' }, body: `action=yourFunctionsAction`, credentials: 'same-origin' }).then(response => { return response.json(); }).then(data => { if (data.status === 'true') { console.log('Do something...'); } }); }
J'essaye de créer un ajaxform sur laface avant.J'utilise le code
pour lequelj'obtiens uneerreur
Touten utilisant un code similaire sur lebackend d'administrationfonctionne.Quelle URL dois-je utiliserpourtraiter la requête ajax?