使用 wp_localize_script 将 php 值传递给 js 以在 wordpress 中调用 ajax 有什么好处吗?
Is there any benefit to use wp_localize_script to pass php value to js for ajax call in wordpress?
Codex 说我们需要使用 wp_localize_script
将 php 值传递给外部 js 文件,如下面的代码:
function bangla_load_scripts($hook){
global $add_settings;
if ($hook =! $add_settings) {
return;
}
wp_enqueue_script('bangla-ajax', plugin_dir_url(__FILE__).'js/bangla-ajax.js', array('jquery') );
wp_localize_script( 'bangla-ajax', 'ajax_object',
array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'we_value' => 1234 );
}
add_action('admin_enqueue_scripts', 'bangla_load_scripts');
文件js/bangla-ajax.js如下:
jQuery(document).ready(function($){
$('#bangla-ajax-form').click(function(){
data = {
'action' : 'bangla_get_results',
'val1' : ajax_object.we_value
}
$.post(ajax_object.ajax_url, data, function(response){
alert(response);
});
return false;
});
});
但是我们不能简单地使用 'val1' : $('#selectorid').val()
这样我们就不需要使用 wp_localize_script
和所有这些额外的代码,与之相关?
如果您阅读文档,它概述了如果您正在国际化您的代码并且需要来自 PHP 的可能需要翻译的 JS 变量,您可能希望使用此方法。
据我所知,除了国际化之外,它也是一种让你的 PHP 和 JS 代码稍微分离的方法,而不是在你的 JS 代码中间注入乱七八糟的 PHP 变量注入.
就您的示例而言,有点难以理解,因为您根本没有概述您的用例,但根据我收集到的信息,如果您只是将数据从表单元素中提取到 post 它到您的 ajax 端点然后 wp_localize_script 甚至与您正在做的事情无关。
Codex 说我们需要使用 wp_localize_script
将 php 值传递给外部 js 文件,如下面的代码:
function bangla_load_scripts($hook){
global $add_settings;
if ($hook =! $add_settings) {
return;
}
wp_enqueue_script('bangla-ajax', plugin_dir_url(__FILE__).'js/bangla-ajax.js', array('jquery') );
wp_localize_script( 'bangla-ajax', 'ajax_object',
array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'we_value' => 1234 );
}
add_action('admin_enqueue_scripts', 'bangla_load_scripts');
文件js/bangla-ajax.js如下:
jQuery(document).ready(function($){
$('#bangla-ajax-form').click(function(){
data = {
'action' : 'bangla_get_results',
'val1' : ajax_object.we_value
}
$.post(ajax_object.ajax_url, data, function(response){
alert(response);
});
return false;
});
});
但是我们不能简单地使用 'val1' : $('#selectorid').val()
这样我们就不需要使用 wp_localize_script
和所有这些额外的代码,与之相关?
如果您阅读文档,它概述了如果您正在国际化您的代码并且需要来自 PHP 的可能需要翻译的 JS 变量,您可能希望使用此方法。
据我所知,除了国际化之外,它也是一种让你的 PHP 和 JS 代码稍微分离的方法,而不是在你的 JS 代码中间注入乱七八糟的 PHP 变量注入.
就您的示例而言,有点难以理解,因为您根本没有概述您的用例,但根据我收集到的信息,如果您只是将数据从表单元素中提取到 post 它到您的 ajax 端点然后 wp_localize_script 甚至与您正在做的事情无关。