説明
check_admin_referer() は、管理画面の処理で、nonceとリファラーを検証する関数です。失敗すると処理を終了します。
基本構文
check_admin_referer( string|int $action = -1, string $query_arg = '_wpnonce' ): int|false
引数
$action:アクション名$query_arg:nonceのパラメーター名
戻り値
有効なら 1 か 2。無効なら処理を終了します。
使い方(サンプル)
check_admin_referer( 'my_action', 'my_nonce' );
注意点
- 失敗時に
wp_die()で処理が止まるため、条件分岐は不要です。
実務での使いどころ
- 管理画面の、フォームやリンクの受け取り側で、nonceを検証するとき。
よくあるミスと対処
- 失敗すると、処理が止まり、エラーの画面が出る。戻り値で判定したいときは、
wp_verify_nonce()を使う。 - フロントのAjaxで使っている。Ajaxには、
check_ajax_referer()を使う。 - 出力側と、アクション名・フィールド名が違う。
NG例
check_admin_referer(); // アクション名が、出力側と合っていない
OK例
// フォーム側
wp_nonce_field( 'my_action', 'my_nonce' );
// 受け取り側
check_admin_referer( 'my_action', 'my_nonce' );
使い分け早見表
| 関数 | 特徴 |
|---|---|
check_admin_referer() |
失敗すると、処理を止める(管理画面向け) |
wp_verify_nonce() |
戻り値で、判定できる |
wp_nonce_field() |
フォームに、nonceを出力する |
関連項目
wp_verify_nonce()、check_ajax_referer()、wp_nonce_url()
公式リファレンス:check_admin_referer() | Function | WordPress Developer Resources

コメント