wp_localize_script - variabila nedefinită în jQuery | WordPress Ajax probleme

15 iul. 2013, 10:15:54
Vizualizări: 14.8K
Voturi: 3

Încerc să încărc un articol cu Ajax.

functions.php:

function my_action_callback() {
        wp_localize_script('jscustom', 'ajax_custom', array(
            'ajaxurl' => admin_url('admin-ajax.php')
        ));
        wp_enqueue_script('jscustom');
}
add_action('wp_ajax_my_action', 'my_action_callback');

Cod jQuery în 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);
    jQuery.post(ajax_custom.ajaxurl, {action:'load_more', page:page, archive:archive}, function(data){...

Când apăs butonul "load more", primesc eroarea:

ReferenceError: ajax_custom is not defined

Ce este greșit?

0
Toate răspunsurile la întrebare 1
0
11

wp_localize_script ar trebui apelat DUPĂ wp_enqueue_script:

IMPORTANT!: wp_localize_script() TREBUIE apelată după ce scriptul căruia i se atașează a fost încărcat (enqueued) sau înregistrat. Nu pune scriptul localizat într-o coadă pentru scripturile ulterioare.

Corectează în funcția ta:

function my_action_callback() {
wp_enqueue_script('jscustom'); // Presupun că l-ai înregistrat în altă parte
wp_localize_script('jscustom', 'ajax_custom', array(
   'ajaxurl' => admin_url('admin-ajax.php')
));

}

Poți verifica în orice moment în secțiunea <head> a paginii dacă vezi variabila ta.

15 iul. 2013 10:30:25