説明
check_ajax_referer() は、Ajaxリクエストのnonceを検証する関数です。
基本構文
check_ajax_referer( string|int $action = -1, string|false $query_arg = false, bool $stop = true ): int|false
引数
$action:アクション名$query_arg:nonceのパラメーター名$stop:失敗時に処理を終了するか
戻り値
有効なら 1 か 2。
使い方(サンプル)
check_ajax_referer( 'my_action', 'nonce' );
注意点
- Ajaxのハンドラー関数の先頭で呼びます。
- 失敗時、既定では
dieします。
実務での使いどころ
- Ajaxの処理の最初で、nonceを検証するとき。
- 管理画面の、Ajaxの処理を、保護するとき。
よくあるミスと対処
- JavaScriptから送る、nonceのキー名と、この関数の第2引数が、合っていない。
- アクション名が、
wp_create_nonce()で作ったときと、違う。 - nonceの検証だけで、権限の確認を省いている。権限は、
current_user_can()で確認する。
NG例
check_ajax_referer( 'my_action' ); // JavaScriptが、別のキー名で送っていると、失敗する
OK例
check_ajax_referer( 'my_ajax_action', 'nonce' );
if ( ! current_user_can( 'edit_posts' ) ) {
wp_send_json_error( null, 403 );
}
使い分け早見表
| 関数 | 特徴 |
|---|---|
check_ajax_referer() |
Ajax用。失敗すると、処理を止める |
check_admin_referer() |
管理画面のフォーム・リンク用 |
wp_verify_nonce() |
戻り値で判定できる |
関連項目
wp_verify_nonce()、wp_create_nonce()
公式リファレンス:check_ajax_referer() | Function | WordPress Developer Resources

コメント