我正在研究儿童主题,在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
,我想根据新结果编辑/更新ajaxload.post_id
。有没有办法做到这一点?如果我尝试使用下面显示的相同wp_localize_script()
重新调用$name
,这会有效吗?
$id_new= 8; //new calculated value
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id_new));
答案 0 :(得分:1)
经过深入研究,我冒昧地回答了我的问题。
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;
}
});
答案 1 :(得分:-1)
创建一个带ID的数组。
$ids = array( 5, 8 );
foreach ( $ids as $id ) {
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id));
}