check_ajax_referer

説明

bool check_ajax_referer( [ mixed $action = -1 [ , string $query_arg = false [ , bool $die = true ] ] ] )
AJAXリクエスト時にnonceパラメータを検証する。

パラメータ

  • $action
    ハッシュ生成時の文字列または数値を指定(省略時は-1)。
  • $query_arg
    nonce用ハッシュ値のタグ名を指定(省略時はfalse)。
  • $die
    nonceパラメータの検証結果が無効な場合に強制終了する場合はtrueを指定(省略時はtrue)。

返り値

チェックの結果、パラメータが有効な場合はtrueを、無効な場合はfalseを返す。ただしパラメータ$dietrueでチェック結果がfalseの場合は、リクエスト処理が終了(die)となる。

注意

check_admin_referer関数は、フォームサブミット時のnonceパラメータを検証に用いるが、本関数はAJAXリクエスト時のパラメータを検証する場合に用いる。nonceパラメータ名は、パラメータ$query_argの値、'_ajax_nonce'、'_wpnonce'の順にその有無が確認され、先に見つかったものがnonceパラメータとなる。

なおnonceパラメータの無効時に独自の処理を行う場合は、パラメータ$diefalseを指定する。


使用例

  • AJAXリクエスト時にnonceパラメータを検証する。
    <?php check_ajax_referer( 'my-action' ); ?>
  • AJAXリクエスト時にnonceパラメータ名'my-ajax-nonce'の値を検証する。
    <?php check_ajax_referer( 'my-action', 'my-ajax-nonce' ); ?>
  • AJAXリクエスト時にnonceパラメータを検証し、検証結果を調べる。
    <?php if ( check_ajax_referer( 'my-action', false, false ) ) : ?>

フィルター

直接実行するフィルターはありません。

アクション

[2.1.0]検証結果を返す直前に'check_ajax_referer'アクションを呼び出す。パラメータ$actionには本関数が受け取った値が、$resultには検証結果となる。
do_action( 'check_ajax_referer', $action, $result );

ソースファイル

/wp-includes/pluggable.php.php

最終更新 : 2014年07月19日 12:37



お勧め

Login rebuilder:プラグイン作ってみました(2024年11月7日 更新)

昨年投稿した「ログインページを変える」をプラグイン化。ログインページを独自の名前のページ変更し、標準のログインページwp-login.phpを使用できないようにするプラグインです。部外者によるwp-login.phpのアクセスにお悩みの方にお勧めします。また2.0.0では「XML-RPCリクエストの管理機能」を追加。2.2.0では管理者のログイン時にメールで通知する機能を追加しました。

管理画面の'アイキャッチ画像'を'写真'に変える(2013年1月23日 更新)

クライアント向けに専用のテーマを提供する際、稀に管理画面内の用語の変更を依頼されることがある。今回は、'アイキャッチ画像'だとわかりにくいので'写真'に変えてほしいということだった。

カスタムフィールド関連関数のおさらい(2012年6月22日 更新)

カスタムフィールドは、投稿記事の拡張情報としてよく利用されている。投稿ページで登録した情報をアーカイブや投稿ページで表示しているが、投稿ページを表示する際にカスタムフィールドの値を更新して、サイドバーのようなページ内要素に利用したりしている。

5.3への準備:投稿写真を使っているサイトは準備しておこう(2019年10月10日 更新)

この記事は先日公開した「5.3の新機能:JPEG画像の向きを調整」の続きのようなものになる。高解像度の投稿写真を扱っているサイトは、5.3のリリースに合わせて対応を検討しておくべきことをまとめてみた。

ブロックエディターで現在の「ロケール」を取得した時のメモ(2024年8月10日 更新)

ブロックエディター向けのプラグインで日本語固有の機能を実装する際、現在のロケール(言語)を取得したい。ブロックエディターの編集時、投稿を編集しているユーザーの言語が優先され、それをどうやって取得するかを「ChatGPT」に聞いてみたのだが。。。