• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/wp create nonce

提供: WordPress Codex 日本語版
移動先: 案内検索

この項目「関数リファレンス/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 の時刻依存性を作り出します。

変更履歴

ソースファイル

wp_create_nonce()wp-includes/pluggable.php にあります。

WordPress Nonce

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


外部リソース


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/wp_create_nonce最新版との差分