ajaxurl no definido en la interfaz
-
-
Consultaestetutorial.Puede quete ayude.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 respuestas
- votos
-
- 2015-06-03
Enelbackend hay una variableglobal
ajaxurl
definidaporelpropio WordPress.Esta variablenoes creadapor WPen lainterfaz. Significa que si desea utilizar llamadas AJAXen lainterfaz,debe definir dicha variable ustedmismo.
Unabuenaforma de hacerloes utilizar
wp_localize_script
.Supongamos que sus llamadas AJAXestánen el archivo
my-ajax-script.js
,luego agregue wp_localize_scriptparaeste archivo JS así: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' );
Después de localizar su archivo JS,puede usarel objeto
my_ajax_object
en su archivo 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); } });
-
¿Puedo usar `wp_localize_script` sintener que usar` wp_enqueue_script`?can I use `wp_localize_script` without having to use `wp_enqueue_scritp`?
- 2
- 2015-06-03
- dread_cat_pirate
-
Usas script handleen wp_localize_script,por lo quetienes que usar wp_enqueue_scriptpara almenos uno detus scripts.Pero ... No usar wp_enqueue_scriptnoes unabuenaidea (correel riesgo de algunos conflictos yproblemas de dependencias).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ż
-
Notengoningún scriptexternopara cargar,solo quiero usar ajaxurlpara hacer una llamada ajax.¿Noesesoposible?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
-
¿Y dóndepondrásesta llamada AJAX?¿Como secuencia de comandosen línea?Es unamuymalaidea ...And where will you put this AJAX call? As inline script? It's a very bad idea...
- 0
- 2015-09-23
- Krzysiek Dróżdż
-
Tengo unformulario separado,en el queestoy administrando la validación y,alenviarlo,una llamada ajaxparaenviarelformulario con,por supuesto,laforma de wordpress agregando hook.detodosmodos,he descubierto laforma de usar 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
-
Impresionante ... Loestoy usandoen mi Javascripten lainterfaz yfunciona como unencanto :)Awesome... I'm using it in my Javascript on front end and works like a charm :)
- 0
- 2017-10-17
- Omer
-
- 2015-09-23
para usar ajaxurl directamente,en su archivo de complemento agregueesto:
add_action('wp_head', 'myplugin_ajaxurl'); function myplugin_ajaxurl() { echo '<script type="text/javascript"> var ajaxurl = "' . admin_url('admin-ajax.php') . '"; </script>'; }
luegopuede usarel
ajaxurl
para la solicitud 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.-
Esta respuesta hace que `ajaxurl` sea similar al usopredeterminado.Lo cualesmuchomejor que la respuesta aceptada.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
-
cierto,peroesinútil si loestá utilizandoen un archivo .js.true, but it's useless if you are using it in a .js file.
- 0
- 2019-03-20
- Jules
-
@Jules `ajaxurl`todavíaestá disponibleen un archivo` * .js`.Para hacerlo,esposible que deba declarar la variable `ajaxurl` alprincipio de la carga de lapágina.Otra cosa a considerares lainvocación del archivoexterno `* .js` suyo.El archivoexterno debe llamarse ** DESPUÉS de ** que se haya creado unainstancia de `ajaxurl` y se le haya asignadoel valor de URL correcto.@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ées unerroren la consola?what's an error in console?
- 0
- 2020-01-29
- Dharmishtha Patel
-
- 2020-01-28
He utilizadoel siguiente códigoen el sitio de WordPress.
podemos usarel siguiente códigopara configurar ajaxurl comoeste.<?php echo esc_url(admin_url('admin-ajax.php')); ?>
También agregué unejemplo de ajax dondepodemos usar la línea anterior.
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...'); } }); }
Estoytratando de crear unformulario ajaxen lapartefrontal.Estoy usandoel código
parael que obtengo unerror
Mientras se usa un código similaren elbackend de administración,funciona.¿Qué URL debo usarparaprocesar la solicitud ajax?