我正在研究子主题, 在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。有没有办法做到这一点?如果我尝试使用相同的$ name如下所示重新调用wp_localize_script(), 是否可以使用?
$id_new= 8; //new calculated value
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id_new));
#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;
}
});
#2
创建一个具有ID的数组。
$ids = array( 5, 8 );
foreach ( $ids as $id ) {
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id));
}
评论前必须登录!
注册