check_admin_referer() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました