ワードプレスのcheck_admin_referer関数の使用方法・解説

概要

check_admin_referer関数は、Nonceを用いてフォームのパラメータを検証するための機能を提供します。この関数は、認証されたユーザーからのリクエストであることを確認し、CSRF(クロスサイトリクエストフォージェリ)攻撃から保護するためによく使用されます。以下は、check_admin_referer関数がよく使われる状況の例です。

  1. 投稿やページの削除
  2. 設定の保存
  3. カスタムオプションの更新
  4. プラグインの設定変更
  5. ユーザーのロール変更
  6. フォームのデータ送信
  7. コンテンツの公開
  8. コメントの承認

構文

check_admin_referer( $action, $query_arg );

パラメータ

  • $action (string) (必須): Nonceのアクション名を指定します。
  • $query_arg (string) (オプション): チェックするクエリ引数の名前(デフォルトは_wpnonce)。

戻り値

Nonceが有効な場合は何も返さず、無効な場合はWordPressのエラーメッセージを表示します。

関連する関数

使用可能なバージョン

check_admin_referer関数は、WordPress 2.0.0以降で使用可能です。

コアファイルのパス

wp-includes/pluggable.php

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード 1

if ( isset( $_POST['submit'] ) ) {
    check_admin_referer( 'my_action' );
    // データ処理を続ける
}

このコードは、フォームが送信されたときにNonceを検証しています。Nonceが有効であれば、その後のデータ処理を続けます。

サンプルコード 2

function my_admin_function() {
    check_admin_referer( 'my_action' );
    // 設定を保存するための処理
}
add_action( 'admin_post_my_action', 'my_admin_function' );

このサンプルでは、特定の管理アクションにフックし、Nonceを検証しています。Nonceが無効な場合、その後の処理は実行されません。

サンプルコード 3

function my_custom_form() {
    ?>
    <form method="POST" action="">
        <?php wp_nonce_field( 'my_action' ); ?>
        <input type="submit" name="submit" value="送信">
    </form>
    <?php
}

このコードは、Nonceを生成するためのフォームを作成しています。wp_nonce_field関数を使うことで、Nonceが自動的に生成されます。

サンプルコード 4

if ( ! current_user_can( 'manage_options' ) ) {
    return;
}

if ( isset( $_POST['submit'] ) ) {
    check_admin_referer( 'my_action' );
    // 設定を更新する
}

この例では、ユーザーの権限を確認し、Nonceを検証した後に設定を更新します。これにより、適切なユーザーのみが変更できるようにしています。

サンプルコード 5

add_action( 'admin_post_update_settings', 'update_settings' );

function update_settings() {
    check_admin_referer( 'settings_update' );
    // 設定を保存する処理
}

このコードは、特定のアクションにフックしてNonceを検証しています。Nonceが正しければ、設定の更新処理が実行されます。

この関数について質問する


上の計算式の答えを入力してください