説明
wp_create_nonce() は、nonce(一度きりの合言葉のようなトークン)を生成する関数です。CSRF(なりすまし送信)対策に使います。
基本構文
wp_create_nonce( string|int $action = -1 ): string
引数
$action:処理を識別する文字列
戻り値
nonceの文字列。
使い方(サンプル)
$nonce = wp_create_nonce( 'my_action' );
注意点
- 有効期間は既定で12〜24時間です。
- 検証には
wp_verify_nonce()、フォームへの埋め込みにはwp_nonce_field()が便利です。
実務での使いどころ
- JavaScript(Ajax)に渡す、nonceの値を作るとき。
- リンクのURLに付ける、nonceを作るとき。
よくあるミスと対処
- ユーザー・用途を問わず、同じ値を使い回すつもりで、アクション名を決めている。用途ごとに、アクション名を分ける。
- nonceを、権限の確認の代わりにしている。nonceは「その画面から送られた」ことの確認で、権限の確認ではない。
- ページキャッシュされるページに、nonceを出力し、期限切れで検証に失敗する。
NG例
wp_localize_script( 'my-script', 'myAjax', array( 'nonce' => wp_create_nonce() ) ); // アクション名がない
OK例
wp_localize_script( 'my-script', 'myAjax', array(
'url' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'my_ajax_action' ),
) );
使い分け早見表
| 関数 | 役割 |
|---|---|
wp_create_nonce() |
nonceの値を作る |
wp_verify_nonce() |
nonceの値を検証する |
wp_nonce_url() |
nonce付きのURLを作る |
関連項目
wp_verify_nonce()、wp_nonce_field()、check_admin_referer()
公式リファレンス:wp_create_nonce() | Function | WordPress Developer Resources

コメント