ajaxurl non definito sul front-end
-
-
Controlla questotutorial.Potrebbe aiutarti.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 risposta
- voti
-
- 2015-06-03
Nelbackend c'è la variabileglobale
ajaxurl
definita da WordPress stesso.Questa variabilenon è stata creata da WPnelfrontend. Significa che se vuoi usare le chiamate AJAXnelfrontend,devi definiretale variabile da solo.
Unbuonmodoperfarlo è utilizzare
wp_localize_script
.Supponiamo che letue chiamate AJAX sianonelfile
my-ajax-script.js
,quindi aggiungi wp_localize_scriptper questofile JSin questomodo: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' );
Dopo aver localizzatoilfile JS,puoi utilizzare l'oggetto
my_ajax_object
neltuofile 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); } });
-
posso usare `wp_localize_script` senza dover usare` wp_enqueue_scritp`?can I use `wp_localize_script` without having to use `wp_enqueue_scritp`?
- 2
- 2015-06-03
- dread_cat_pirate
-
Usi l'handle di scriptin wp_localize_script,quindi devi usare wp_enqueue_scriptper almeno uno deituoi script.Ma ... Non usare wp_enqueue_scriptnon è unabuonaidea (si rischiano conflittie problemi di dipendenze).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ż
-
non ho alcuno scriptesterno da caricare,voglio solo usare ajaxurlperfare una chiamata ajax.non èpossibile?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
-
E dovemetti questa chiamata AJAX?Come scriptin linea?È unapessimaidea ...And where will you put this AJAX call? As inline script? It's a very bad idea...
- 0
- 2015-09-23
- Krzysiek Dróżdż
-
ho unmodulo separato,in quanto stogestendo la convalidae almomento dell'invio,una chiamata ajaxperinviareilmodulo con ovviamente wordpress aggiungendo hook.comunque ho capito come usare 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
-
Fantastico ... lo sto usandonelmio Javascript sulfront-ende funziona come unfascino :)Awesome... I'm using it in my Javascript on front end and works like a charm :)
- 0
- 2017-10-17
- Omer
-
- 2015-09-23
per utilizzare direttamente ajaxurl,nelfile delplugin aggiungi questo:
add_action('wp_head', 'myplugin_ajaxurl'); function myplugin_ajaxurl() { echo '<script type="text/javascript"> var ajaxurl = "' . admin_url('admin-ajax.php') . '"; </script>'; }
puoi quindi utilizzare
ajaxurl
per la richiesta 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.-
Questa risposta rende `ajaxurl`in modo simile all'usopredefinito.Che èmoltomeglio della risposta accettata.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
-
vero,ma èinutile se lo usiin unfile .js.true, but it's useless if you are using it in a .js file.
- 0
- 2019-03-20
- Jules
-
@Jules `ajaxurl` è ancora disponibilein unfile` * .js`.Perfarlo,potrebbeesserenecessario dichiarare la variabile `ajaxurl` all'inizio del caricamento dellapagina.Un'altra cosa da considerare è la chiamata deltuofile `* .js`esterno.Ilfileesterno dovrebbeessere chiamato ** DOPO ** che `ajaxurl` è statoistanziatoe ricevereil valore URL corretto.@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
-
cos'è unerrorenella console?what's an error in console?
- 0
- 2020-01-29
- Dharmishtha Patel
-
- 2020-01-28
ho usatoil codice sottostantenel sito wordpress.
possiamo usareil codice seguenteperimpostare ajaxurlin questomodo.<?php echo esc_url(admin_url('admin-ajax.php')); ?>
ho anche aggiunto unesempio ajax dovepossiamo usare la riga sopra.
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...'); } }); }
Sto cercando di creare un ajaxform sul lato anteriore.Sto usandoil codice
per cui ricevo unerrore
Durante l'utilizzo di un codice simile sulbackend dell'amministratorefunziona.Quale URL devo utilizzareperelaborare la richiesta ajax?