0

我正在用 html5 编写游戏,并在网站的其余部分使用 wordpress。我希望用户能够保存他们的进度,但我不清楚架构的外观。

我只会对访问数据库的 php 页面进行 ajax 调用,但我觉得使用现有的 wordpress 数据库和 API 是正确的做法。不仅如此,使用 wordpress api 可以让我访问诸如 nonce 之类的东西。

也就是说,我是否编写了一个 wordpress 插件来做到这一点?如何从运行我的游戏的 javascript 正确执行保存请求?

4

2 回答 2

1

在您的 js 文件中,执行您的 ajax 请求,如下所示:

jQuery.post('path/to/wp-admin/admin-ajax.php', {action:'save_progress',other_parameter:'other_value'}, function(response) {
    // let your user know if his progress is saved or not
});

将此添加到主题的 functions.php 中:

function save_progress() {
     global $wpdb;
     // do the saving job with received parameters here
     die(); // this is necessary
}

add_action('wp_ajax_save_progress', 'save_progress');
于 2012-05-06T20:10:37.280 回答
1

如果您对比 wordpress API 允许的更通用的解决方案感兴趣(为了更全面地理解),下面是一个简单但完整的演示:

这是HTML:

<input id="posted_data" ></input>
<button id="saveBtn">Save</button>

这是JS:

$(document.body).on('click', '#saveBtn', function(){        
  var posted_data=$('#posted_data').val();
  var url="/submit_page.php";
  $.ajax({url: url, data: {posted_data:posted_data }, type: "POST",
      success: function(response){
                //do something with the `response` data
      } //success
  }); //ajax
}); //.saveEditBtn

这是 submit_page.php:

$posted_data=$_POST['posted_data'];
$posted_data; //do something with this variable, like insert it into a database

echo "Success";  // this will be the `response` variable in the JS above.
于 2012-05-06T20:13:17.637 回答