0

私は html5 でゲームを書いており、残りのサイトではワードプレスを使用しています。ユーザーが進行状況を保存できるようにしたいのですが、アーキテクチャがどのように見えるかがよくわかりません。

データベースにアクセスするphpページへのajax呼び出しを行うだけですが、既存のwordpressデータベースとAPIを使用するのが正しいと思います。それだけでなく、wordpress API を使用すると、ノンスなどにアクセスできるようになります。

そうは言っても、これを行うためにワードプレスプラグインを書く必要がありますか? ゲームを実行する 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 に答える