我正在研究一个儿童主题,在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',array('post_id' => $id_new));
经过深入研究,我冒昧地回答了我的问题.
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',post_id: ajaxload.post_id
- },success:function(data) {
- var result = $.parseJSON(data);
- ajaxload.post_id = result.post_id;
- }
- });