2014-02-09 81 views
0

我在測試ajax在WordPress,它基本上工作,但我不希望URL被硬編碼,所以我嘗試使用wp_localize_script來獲得一個對象使用,但我得到一個錯誤說:當提醒ajax_script.js中的siteurl時,「ReferenceError:WPURLS未定義」。本地化腳本不工作在AJAX

的functions.php

function my_scripts_method() { 
    wp_enqueue_script(
     'ajax_script', 
     get_stylesheet_directory_uri() . '/js/ajax_script.js', 
     array('jquery') 
    ); 
} 
add_action('wp_enqueue_scripts', 'my_scripts_method'); 

wp_localize_script('ajax_script', 'WPURLS', array('siteurl' => get_option('siteurl'))); 

ajax_script.js

$(function() { 

    $('#vru-btn').click(function() { 
     // alert('code'); 
     $.post('wp-content/themes/wpcleantheme/ajax/test.php', function(data) { 
      $('#vru-div').html(data);  
     }); 
    });; 

    alert(WPURLS.siteurl); 
}); 

回答

0

wp_localize_script( 'ajax_script', 'WPURLS',陣列( 'SITEURL'=> get_option( 'SITEURL')));

然後在腳本中:

WPURLS.siteurl將包含url。

當調用wp_localize_script時,它將獲取數據並以對象形式將其傳遞給腳本。

還要記住,在腳本註冊併入隊後需要調用localize_script。