wp_localize_script - Variabile non definita in jQuery
15 lug 2013, 10:15:54
Visualizzazioni: 14.8K
Voti: 3
Provo a caricare un post con Ajax.
functions.php
:
function my_action_callback() {
// Localizza lo script e passa variabili PHP a JavaScript
wp_localize_script('jscustom', 'ajax_custom', array(
'ajaxurl' => admin_url('admin-ajax.php'),
'loading' => __('Caricamento in corso...', 'textdomain') // Aggiunto testo di caricamento
));
wp_enqueue_script('jscustom');
}
add_action('wp_ajax_my_action', 'my_action_callback');
Codice jQuery in custom.js
:
jQuery(window).load(function() {
var morebutton = jQuery('#load-more'),
archive = morebutton.rel,
deftext = morebutton.text(),
page = 1;
morebutton.click(function(e){
e.preventDefault();
page++;
morebutton.text(ajax_custom.loading); // Usa la variabile localizzata
jQuery.post(ajax_custom.ajaxurl, {action:'load_more', page:page, archive:archive}, function(data){...
Quando premo il pulsante "carica altri", ottengo un errore:
ReferenceError: ajax_custom non è definito
Cosa c'è che non va?
Tutte le risposte alla domanda
1
0
wp_localize_script
dovrebbe essere chiamato DOPO wp_enqueue_script
:
IMPORTANTE!: wp_localize_script() DEVE essere chiamato dopo che lo script a cui viene associato è stato accodato o registrato. Non mette lo script localizzato in una coda per script successivi.
Correggi nella tua funzione:
function my_action_callback() {
wp_enqueue_script('jscustom'); // Presumo che tu l'abbia registrato altrove
wp_localize_script('jscustom', 'ajax_custom', array(
'ajaxurl' => admin_url('admin-ajax.php')
));
}
Puoi sempre verificare nell'<head>
della tua pagina se vedi la tua variabile.

RRikesh
5.66K
15 lug 2013 10:30:25
Domande correlate