Ajaxurl não definido na extremidade frontal
-
-
Verifiqueestetutorial.Pode ajudá-lo.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 respostas
- votos
-
- 2015-06-03
Nobackend,há uma variável Global
Ajaxurl
definidapelo WordPress.Esta variávelnão é criadapela WPnofrontend. Isso significa que se você quiser usar chamadas AJAXnofrontend,então vocêtem que definiressa variável sozinho.
Boamaneira defazerisso é usar
wp_localize_script
.Vamos supor que suas chamadas Ajaxestãoem
My-Ajax-script.js
arquivoe adicionar wp_localize_scriptparaeste arquivo JS como assim:funçãomy_enqueue () { wp_enqueue_script ('Ajax-script',get_template_directory_uri (). '/js/my-ajax-script.js',matriz ('jquery')); wp_localize_script ('Ajax-script','my_ajax_object', array ('ajax_url'=> admin_url ('admin-ajax.php')); } add_action ('wp_enqueue_scripts','my_enqueue');
Após localizar seu arquivo JS,vocêpode usar
my_ajax_object
objetono seu arquivo JS:jquery.ajax ( { Tipo: "Postar", Datatype: "JSON", URL:my_ajax_object.ajax_url, DADOS: FORMDATA, sucesso:função (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 usar o `wp_localize_script` semter que usar` wp_enqueue_scritp`?can I use `wp_localize_script` without having to use `wp_enqueue_scritp`?
- 2
- 2015-06-03
- dread_cat_pirate
-
Você usa oidentificador de scriptno wp_localize_script,portanto,vocêprecisa usar WP_ENQUEUE_Scriptparapelomenos um dos seus scripts.Mas ...não usar wp_enqueue_scriptnão é umaboaideia (você arrisca algunsproblemas de conflitose dependências).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ż
-
Eunãotenhonenhum scriptexternopara carregar,eu só quero usar o Ajaxurlparafazer uma chamada AJAX.Issonão épossível?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 onde você vai colocareste chamado Ajax?Como scriptinline?É umaideiamuito ruim ...And where will you put this AJAX call? As inline script? It's a very bad idea...
- 0
- 2015-09-23
- Krzysiek Dróżdż
-
Eutenho umformulário separado,namedidaem quegestão de validaçãoe envio,uma chamada AJAXparaenviar oformulário com o curso WordPress,adicionandogancho.De qualquerforma,descobri o caminhopara 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
-
Impressionante ... Euestou usandonomeu Javascriptnofrontende funciona como um 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
Para usar o Ajaxurl diretamente,no seu arquivo deplugin adicionaristo:
add_action('wp_head', 'myplugin_ajaxurl'); function myplugin_ajaxurl() { echo '<script type="text/javascript"> var ajaxurl = "' . admin_url('admin-ajax.php') . '"; </script>'; }
Vocêpode usar o
ajaxurl
para solicitação 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 respostafaz `Ajaxurl` Damesmaforma que o usopadrão.Que émuitomelhor que a resposta aceita.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
-
É verdade,mas éinútil se vocêestiver usandoem um arquivo .js.true, but it's useless if you are using it in a .js file.
- 0
- 2019-03-20
- Jules
-
@Jules `Ajaxurl` aindaestá disponívelem um arquivo` * .js`.Parafazerisso,talvez sejanecessário declarar a variável "Ajaxurl"noinício da carga dapágina.Outra coisa a considerar é o chamado do arquivoexterno '.js' do seu.O arquivoexterno deve ser chamado ** após ** o `Ajaxurl`foiinstanciadoe recebe o valor da URL direita.@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
-
O que é umerrono console?what's an error in console?
- 0
- 2020-01-29
- Dharmishtha Patel
-
- 2020-01-28
Eu uso abaixo do códigono site do WordPress.
Podemos usar o código abaixopara a configuração Ajaxurl assim.<?php echo esc_url(admin_url('admin-ajax.php')); ?>
Eutambém adicionei oexemplo Ajaxforampodemos usar a linha acima.
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...'); } }); }
Euestoutentando criar umformulário Ajaxno lado dafrente.Euestou usando o código
para o qualestou recebendoerro
Ao usar o código similarnas obras debackend administrador.Qual URL devo usarparaprocessar a solicitação Ajax?