我正在用html5编写一个游戏,并在网站的其余部分使用wordpress。我希望用户能够保存他们的进度,但我不清楚架构的外观。
我只是对访问数据库的php页面进行ajax调用,但我觉得使用现有的wordpress数据库和API是正确的做法。不仅如此,使用wordpress api还可以访问nonce。
那就是说,我写一个wordpress插件来做这个吗?如何从运行游戏的javascript中正确执行保存请求?
答案 0 :(得分: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');
答案 1 :(得分: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.