本地化脚本不工作在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。