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

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

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

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

この項目「関数リファレンス/wp nonce url」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

クエリに nonce が追加された URL を取得します。

戻り値は表示用にエスケープされます。

使い方

<?php wp_nonce_url( $actionurl, $action, $name ); ?>

パラメータ

$actionurl
文字列) (必須) nonce とアクションを追加する URL
初期値: なし
$action
文字列) (オプション) nonce アクションの名前
初期値: -1
$name
文字列) (オプション) nonce の名前
初期値: '_wpnonce'

戻り値

(文字列) 
nonce とアクションが追加された URL。

用例

プラグイン製作者は wp_nonce_url()admin_url() を組み合わせて使うことにより、タスクを実行するリンクを安全に追加することができます。

例えば、ユーザーが何か関心のあることを実行するためのリンクを作ることから始めましょう:

function my_plugin_do_something () {
?>
<h2><?php esc_html_e( 'My Plugin Admin Screen', 'my-plugin-textdomain' );?></h2>
<p>
    <a href="<?php print wp_nonce_url( admin_url( 'options.php?page=my_plugin_settings' ), 'doing_something', 'my_nonce' );?>"
        class="button button-primary"><?php esc_html_e( 'Do Something!', 'my-plugin-textdomain' );?></a>
    <span class="description"><?php esc_html_e( 'This button does something interesting.', 'my-plugin-textdomain' );?></span>
</p>
<?php
}

次に、ユーザーがリンクをクリックしたことを検出するため、wp_verify_nonce() を使って nonce を認証します。これは add_menu_page() または 管理メニューのラッパー関数 の何れかを呼び出すときに定義する関数の中で実行します。nonce が無効ならリンクはクリックされていませんのでリンクを再表示します。有効なら「関心のあること」を実行します。

add_action( 'admin_menu', 'add_my_plugin_admin_screen' );
function add_my_plugin_admin_screen () {
    add_options_page(
        __( 'My Plugin Settings', 'my-plugin-textdomain' ),
        __( 'My Plugin', 'my-plugin-textdomain' ),
        'manage_options',
        'my_plugin_settings',
        'my_plugin_do_something'
    );
}

function my_plugin_do_something () {
    if ( ! isset( $_GET['my_nonce'] ) || ! wp_verify_nonce( $_GET['my_nonce'], 'doing_something' )) {
?>
<h2><?php esc_html_e( 'My Plugin Admin Screen', 'my-plugin-textdomain' );?></h2>
<p>
    <a href="<?php print wp_nonce_url( admin_url( 'options.php?page=my_plugin_settings' ), 'doing_something', 'my_nonce' );?>"
        class="button button-primary"><?php esc_html_e( 'Do Something!', 'my-plugin-textdomain' );?></a>
    <span class="description"><?php esc_html_e( 'This button does something interesting.', 'my-plugin-textdomain' );?></span>
</p>
<?php
    } else {
        // ユーザーが "Do Something!" ボタンをクリックしたので「関心のあること」を実行。
    }
}

注意:nonce に「コンテキスト」パラメータを指定することを推奨します。これは、どのボタンが押されたかを正確に判定するために使います。ユーザーが押せるボタンを 2 つ以上作るなら、各ボタンが別々の nonce 名および(または)コンテキストを持つようにしてください。

参考

変更履歴

2.0.4 : 新規導入

ソースファイル

wp_nonce_url()wp-includes/functions.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_nonce_url最新版との差分