在 Wordpress 中更新本地化脚本的数据参数
Update Data parameter of a localized script in Wordpress
我正在研究儿童主题,在 my-page-template.php
我有 :
$id_curr= 5; //calculated value through code
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id_curr));
在 my_js.js
我有一个 AJAX 电话:
$.ajax({
//...
type: 'post',
data: {
action: 'ajax_load',
post_id: ajaxload.post_id
}
})
现在functions.php
,我想edit/updateajaxload.post_id
根据一个新的结果。有没有办法做到这一点?如果我尝试使用相同的 $name
重新调用 wp_localize_script()
,如下所示,这会起作用吗?
$id_new= 8; //new calculated value
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id_new));
创建一个包含 ID 的数组。
$ids = array( 5, 8 );
foreach ( $ids as $id ) {
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id));
}
经过深入研究,冒昧回答我的问题。
Wordpress 具有 wp_send_json()
功能,允许将响应发送回 AJAX 请求。这个函数可以更新ajaxload.post_id
.
在functions.php
中:
$return = array('post_id' => $id_new);
wp_send_json($return);
在my_js.js
中:
$.ajax({
type: 'post',
data: {
action: 'ajax_load',
post_id: ajaxload.post_id
},
success:function(data) {
var result = $.parseJSON(data);
ajaxload.post_id = result.post_id;
}
});
我正在研究儿童主题,在 my-page-template.php
我有 :
$id_curr= 5; //calculated value through code
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id_curr));
在 my_js.js
我有一个 AJAX 电话:
$.ajax({
//...
type: 'post',
data: {
action: 'ajax_load',
post_id: ajaxload.post_id
}
})
现在functions.php
,我想edit/updateajaxload.post_id
根据一个新的结果。有没有办法做到这一点?如果我尝试使用相同的 $name
重新调用 wp_localize_script()
,如下所示,这会起作用吗?
$id_new= 8; //new calculated value
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id_new));
创建一个包含 ID 的数组。
$ids = array( 5, 8 );
foreach ( $ids as $id ) {
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id));
}
经过深入研究,冒昧回答我的问题。
Wordpress 具有 wp_send_json()
功能,允许将响应发送回 AJAX 请求。这个函数可以更新ajaxload.post_id
.
在functions.php
中:
$return = array('post_id' => $id_new);
wp_send_json($return);
在my_js.js
中:
$.ajax({
type: 'post',
data: {
action: 'ajax_load',
post_id: ajaxload.post_id
},
success:function(data) {
var result = $.parseJSON(data);
ajaxload.post_id = result.post_id;
}
});