概要
wp_nonce_url関数は、URLにnonceパラメータを追加するために使用されるWordPressの関数です。この関数は、特定のアクションが実行される場合に、リクエストが正当であることを確認するためのセキュリティが強化されたURLを生成します。一般的には、以下のような機能を実装する際によく使われます。
- フォームの送信処理
- 設定変更の保存
- データの削除操作
- 投稿の公開
- ユーザーのログイン/ログアウト処理
- プラグインの設定ページへの遷移
- APIエンドポイントへのアクセス許可
- 管理画面でのオプション更新
構文
string wp_nonce_url( string $actionurl, string $action = -1, string $name = '_wpnonce' )
パラメータ
- $actionurl: 追加するnonceパラメータを含むURL。
- $action: 任意のアクション(デフォルトは
-1)。 - $name: nonceパラメータの名前(デフォルトは
'_wpnonce')。
戻り値
生成されたnonceが追加されたURLを返します。
関連する関数
可能なバージョン
この関数は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 |
サンプルコード
-
基本的な使い方
$url = 'https://example.com/action'; echo wp_nonce_url($url, 'my_action');このコードは、指定したURLに対してnonceパラメータを追加し、セキュリティを強化したURLを生成します。
-
postリクエストへのNonceの追加
$url = admin_url('admin-post.php?action=my_action'); echo wp_nonce_url($url, 'my_action');このコードは、管理画面のポストリクエストにnonceを追加することで、実行時にCSRF攻撃から保護します。
-
自作プラグインへのNonceの付加
$plugin_url = 'https://example.com/my-plugin'; echo wp_nonce_url($plugin_url, 'my_plugin_action');このケースでは、自作のプラグインURLにnonceを追加し、実行時の安全性を確保します。
-
設定ページへのNonceの追加
$settings_url = admin_url('options-general.php?page=my-settings'); echo wp_nonce_url($settings_url, 'save_my_settings');このサンプルコードは、設定ページにnonceを加えることで不正な変更から保護します。
-
削除操作のリンク生成
$delete_url = 'https://example.com/delete-item?id=123'; echo wp_nonce_url($delete_url, 'delete_item_123');このコードは、特定のアイテムを削除するためのリンクにnonceを追加し、確認を強制します。