万が一、当サイトで重大な問題を発見した際などは、フォーラムや WordSlack #docs チャンネルでお知らせください。</p>
関数リファレンス/wp create nonce
この項目「関数リファレンス/wp create nonce」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。
nonce を生成して返します。nonce は現在の時刻、$action 引数、現在のユーザー ID に基づいて生成されます。
使い方
<?php wp_create_nonce( $action ); ?>
パラメータ
- $action
- (文字列/整数) (オプション) アクションの名前。実行中のコンテキストを指定してください。オプションですが推奨します。
- 初期値: -1
戻り値
- (文字列)
- フォームに入れて使う nonce トークン。
用例
この簡単な例では、nonce を作って、あるリンクの URL の GET クエリパラメータに使います。ユーザーがリンクをクリックすると、特定のアクションを実行(例えば投稿を削除)するページへ転送されます。行き先のページではリクエストが有効である(ユーザーが本当にクリックしたリンクであり、アクションを本当に実行したい)ことを確かめるために nonce を検証します。
<?php // あるリンク用に nonce を生成。GET パラメータに入れる。 // 行き先ページでは 'do_something' パラメータに基づいて何かアクションを実行する。 $nonce = wp_create_nonce( 'my-nonce' ); ?> <a href='myplugin.php?do_something=some_action&_wpnonce=<?php echo $nonce; ?>'>Do some action</a> <?php // このコードは行き先ページに書く。 // nonce を検証する必要がある。 $nonce = $_REQUEST['_wpnonce']; if ( ! wp_verify_nonce( $nonce, 'my-nonce' ) ) { // nonce が無効な場合。 die( 'Security check' ); } else { // nonce が有効な場合。 // 目的のアクションを実行。 } ?>
上の例で、nonce の名前は 'my-nonce' です。一番望ましいのは、アクション毎に nonce の名前を別々にします。例えば、投稿を削除するリクエストに入れる nonce を生成するとき、名前を 'delete_post' にします。さらに、もっと限定的にするため、その nonce が対象とする特定の投稿の ID を付け加えます。例えば ID=5 の投稿なら 'delete_post-5' にします。
wp_create_nonce( 'delete_post-' . $post_id );
そして次のように nonce を検証します:
wp_verify_nonce( $nonce, 'delete_post-' . $_REQUEST['post_id'] );
一般的に、アクションに対する名前を可能な限りユニークにするのがベストです。
参考
- この関数は init /en またはそれ以降のアクションフックを使って呼び出す必要があります。アクションフックの外で呼び出すと問題を起こすことがあります。詳しくは チケット #14024 を見てください。
- apply_filters() を使って現在のユーザー ID に nonce_user_logged_out /en フィルターを適用してから nonce 生成に使用します。
- wp_nonce_tick() /en を使って nonce の時刻依存性を作り出します。
変更履歴
- 2.0.3 : 新規導入
ソースファイル
wp_create_nonce() は wp-includes/pluggable.php
にあります。
関連項目
Nonce関数: wp_explain_nonce() /en, wp_nonce_ays() /en, wp_nonce_field(), wp_nonce_url(), wp_verify_nonce(), wp_create_nonce() /en, check_admin_referer() /en, check_ajax_referer() /en, wp_referer_field() /en
外部リソース
- Mark Jaquith - WordPress Nonces
- Vladimir Prelovac - Using Nonces in WordPress Plugins
- Wikipedia: ノンス
最新英語版: WordPress Codex » Function Reference/wp_create_nonce (最新版との差分)