在Wordpress中更新本地化脚本的数据参数

Nao*_*chi 8 php ajax wordpress wordpress-theming wordpress-plugin

我正在研究儿童主题,my-page-template.php我有:

$id_curr= 5; //calculated value through code
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id_curr)); 
Run Code Online (Sandbox Code Playgroud)

my_js.js我有一个AJAX调用:

$.ajax({
   //...
   type: 'post',
   data: {
      action: 'ajax_load',
      post_id: ajaxload.post_id
   }
})
Run Code Online (Sandbox Code Playgroud)

现在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));  
Run Code Online (Sandbox Code Playgroud)

Nao*_*chi 2

经过深入研究,我斗胆回答一下我的问题。

wp_send_json()Wordpress 具有允许发送回 AJAX 请求的响应的功能。该功能可以更新ajaxload.post_id

functions.php

$return = array('post_id' => $id_new);
wp_send_json($return);
Run Code Online (Sandbox Code Playgroud)

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;
   }
});
Run Code Online (Sandbox Code Playgroud)