wp_ajax_rest_nonce()


WordPressのwp_ajax_rest_nonce()関数は、REST APIリクエスト時に使用するnonceを生成するための関数です。セキュリティ対策として利用されます。

構文

wp_ajax_rest_nonce( string $action = 'wp_rest' );
  • $action(string)— nonceを生成するためのアクション名。デフォルトは’wp_rest’。

例1: 基本的なnonceの生成

REST APIリクエスト用のnonceを生成します。

$nonce = wp_ajax_rest_nonce();

例2: カスタムアクション名でのnonce生成

カスタムアクション名を指定してnonceを生成します。

$nonce = wp_ajax_rest_nonce('custom_action');

例3: JavaScriptでのnonce利用

生成したnonceをJavaScript変数として出力します。

wp_localize_script('my-script','my_obj',['nonce'=>wp_ajax_rest_nonce()]);

例4: AJAXリクエストでのnonce検証

AJAXリクエスト時にnonceを検証します。

check_ajax_referer('wp_rest','nonce');

例5: REST APIエンドポイントでのnonce検証

REST APIエンドポイントでnonceを検証します。

register_rest_route('my/v1','endpoint',['methods'=>'POST','callback'=>function($request){if(!wp_verify_nonce($request['nonce'],'wp_rest')){return new WP_Error('invalid_nonce');}return rest_ensure_response('Success');}]);

例6: フォームにnonceを埋め込む

フォームにnonceフィールドを追加します。

wp_nonce_field('wp_rest','_wpnonce',true,true);

例7: カスタムnonceのライフタイム設定

nonceの有効期限をカスタマイズします。

add_filter('nonce_life',function(){return 60*60*24;});

注意事項

  • nonceは絶対的なセキュリティ対策ではありません
  • 機密性の高い操作には追加の認証が必要です
  • nonceの有効期限はデフォルトで24時間です

関連機能: