私は現在のプロジェクトで複数のajaxリクエストを許可する機能を持っています - 私は単一のnonceリクエストを( this tute 経由で)完成させましたが、複数のnonceリクエストをどのように理解するかはやや不明です。
functions.php:ローカライズ、単一のノンスを作成
wp_localize_script(
'B99-Portfolio',
'B99ajax',
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'requestNonce' => wp_create_nonce('b99-request-nonce')
)
);
jsを呼び出す:
$.ajax({
type : 'POST',
url : B99ajax.ajaxurl,
data : {
action : 'b99-ajax-submit',
requestNonce : B99ajax.requestNonce
},...
受信php
public function b99_ajax_submit() {
$nonce = $_POST['requestNonce'];
if ( ! wp_verify_nonce( $nonce, 'b99-request-nonce' ) )
... sql, response
この時点で、このnonceを繰り返し再利用することができますが、nonceチェックの目的は無効になると思います。私の解決策は、受信側のphpで新しい一回だけを要求し、その変数にB99ajax
jsオブジェクトを割り当て、そしてそれを "次の" ajaxシーケンスのために要求しているページに送り返すことです。
もっと良い方法はありますか?
それは基本的にはWordPressが行う方法であり、それを実行するためのほとんどの唯一の方法です。単に受信側のPHP関数に新しいnonce addを作成してもらい、応答を返してください。次のラウンドの前に。