本地化脚本不工作在AJAX
问题描述:
我在测试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);
});
答
wp_localize_script( 'ajax_script', 'WPURLS',阵列( 'SITEURL'=> get_option( 'SITEURL')));
然后在脚本中:
WPURLS.siteurl将包含url。
当调用wp_localize_script时,它将获取数据并以对象形式将其传递给脚本。
还要记住,在脚本注册并入队后需要调用localize_script。