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

概要

wp_create_nonce関数は、WordPressのセキュリティ機能の一環として使用され、nonce用ハッシュ値を生成するための関数です。この関数は、特に以下のような機能を実装する際によく使用されます。

  1. フォームのCSRF対策
  2. AJAXリクエストのセキュリティ強化
  3. ユーザやデータの削除確認
  4. 特定の権限を持つユーザーのみのアクションを許可
  5. 管理画面でのアクションの安全性向上
  6. プラグイン間のセキュリティ管理
  7. ダッシュボードウィジェットの設定保存
  8. カスタムポストタイプの操作安全性確保

構文

string wp_create_nonce( string $action = -1 );

パラメータ

  • $action (string, optional): nonceの目的を識別するための文字列。デフォルトは-1

戻り値

  • (string): 生成されたnonceの値。

関連する関数

バージョン情報

  • この関数は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: nonceの生成と使用

この例では、フォームを生成する際にnonceを作成し、それを隠しフィールドとして追加しています。

$nonce = wp_create_nonce('my_action');
echo '<input type="hidden" name="my_nonce" value="' . esc_attr($nonce) . '" />';

サンプルコード 2: nonceの確認

この例では、送信されたフォームのnonceを検証します。

if (isset($_POST['my_nonce']) && wp_verify_nonce($_POST['my_nonce'], 'my_action')) {
    // nonceが正しい場合の処理
} else {
    // nonceが無効または不正な場合の処理
}

サンプルコード 3: AJAXリクエストにnonceを埋め込む

このコードでは、AJAXリクエストにnonceを追加する手法を示しています。

jQuery.post(ajaxurl, {
    action: 'my_ajax_action',
    my_nonce: '<?php echo wp_create_nonce('my_ajax_action'); ?>',
    // その他パラメータ
});

サンプルコード 4: URLにnonceを追加

この例では、nonceをURLに追加し、他のページへのセキュリティを強化しています。

$url = admin_url('admin-post.php?action=my_action&_wpnonce=' . wp_create_nonce('my_action'));
echo '<a href="' . esc_url($url) . '">実行する</a>';

サンプルコード 5: トランジションAPIとnonceを使用

この例では、トランジションAPIを介してnonceを生成し、カスタムアクションを呼び出しています。

add_action('init', function() {
    if (isset($_GET['my_nonce']) && wp_verify_nonce($_GET['my_nonce'], 'my_action')) {
        // nonceが正しい場合の処理
    }
});

これらのサンプルコードは、実際のプロジェクトでノンスを利用するための一般的な使用方法を示しています。

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


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