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

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

「関数リファレンス/wp nonce url」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(説明: 転送をスキップ。)
(en:Function Reference/wp nonce url 07:18, 20 June 2015 Gblsm 版wo)
 
1行目: 1行目:
 +
{{CheckTrans}}
 +
 
<div id="Description">
 
<div id="Description">
== 説明 ==
+
== 解説 ==
 
</div>
 
</div>
クエリに [[WordPress Nonce|nonce]] が追加されたURLを読み出す関数。
+
 
 +
クエリに [[WordPress Nonce|nonce]] が追加された URL を取得します。
 +
 
 +
戻り値は表示用にエスケープされます。
  
 
<div id="Usage">
 
<div id="Usage">
 
== 使い方 ==
 
== 使い方 ==
 
</div>
 
</div>
  <?php wp_nonce_url( $actionurl, $action ); ?>
+
 
 +
  <?php wp_nonce_url( $actionurl, $action, $name ); ?>
  
 
<div id="Parameters">
 
<div id="Parameters">
 
== パラメータ ==
 
== パラメータ ==
 
</div>
 
</div>
{{Parameter|$actionurl|string|nonce アクションを追加するURL}}
 
{{Parameter|$action|string|nonce アクションの名前|オプション|-1}}
 
  
<div id="Return Values">
+
{{Parameter|$actionurl|文字列|nonce とアクションを追加する URL}}
 +
{{Parameter|$action|文字列|nonce アクションの名前|オプション|-1}}
 +
{{Parameter|$name|文字列|nonce の名前|オプション|'_wpnonce'}}
 +
 
 +
<div id="Return_Values">
 
== 戻り値 ==
 
== 戻り値 ==
 
</div>
 
</div>
; (string) : Nonce アクションが追加されたURL
+
 
 +
; (文字列) : nonce とアクションが追加された URL。
  
 
<div id="Examples">
 
<div id="Examples">
 
== 用例 ==
 
== 用例 ==
 
</div>
 
</div>
<!-- Need creative examples. Feel free to link to external examples. -->
+
 
 +
プラグイン製作者は <tt>wp_nonce_url()</tt> と <tt>[[関数リファレンス/admin_url|admin_url()]]</tt> を組み合わせて使うことにより、タスクを実行するリンクを安全に追加することができます。
 +
 
 +
例えば、ユーザーが何か関心のあることを実行するためのリンクを作ることから始めましょう:
 +
 
 +
<pre class="php">
 +
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
 +
}
 +
</pre>
 +
 
 +
次に、ユーザーがリンクをクリックしたことを検出するため、<tt>[[関数リファレンス/wp_verify_nonce|wp_verify_nonce()]]</tt> を使って nonce を認証します。これは [[関数リファレンス/add_menu_page|add_menu_page()]] または [[管理メニューの追加|管理メニューのラッパー関数]] の何れかを呼び出すときに定義する関数の中で実行します。nonce が無効ならリンクはクリックされていませんのでリンクを再表示します。有効なら「関心のあること」を実行します。
 +
 
 +
<pre class="php">
 +
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!" ボタンをクリックしたので「関心のあること」を実行。
 +
    }
 +
}
 +
</pre>
 +
 
 +
<p class="information">注意:nonce に「コンテキスト」パラメータを指定することを推奨します。これは、どのボタンが押されたかを正確に判定するために使います。ユーザーが押せるボタンを 2 つ以上作るなら、各ボタンが別々の nonce 名および(または)コンテキストを持つようにしてください。</p>
  
 
<div id="Notes">
 
<div id="Notes">
== 注釈 ==
+
== 参考 ==
 
</div>
 
</div>
  
<div id="Change_log">
+
<div id="Change_Log">
 
== 変更履歴 ==
 
== 変更履歴 ==
 
</div>
 
</div>
2.0.4にて導入されました。
 
  
<div id="Source_file">
+
2.0.4 : 新規導入
 +
 
 +
<div id="Source_File">
 
== ソースファイル ==
 
== ソースファイル ==
 
</div>
 
</div>
 +
 
<tt>wp_nonce_url()</tt> は {{Trac|wp-includes/functions.php}} にあります。
 
<tt>wp_nonce_url()</tt> は {{Trac|wp-includes/functions.php}} にあります。
  
 
<div id="Related">
 
<div id="Related">
== 関連資料 ==
+
== 関連項目 ==
 
</div>
 
</div>
{{Nonce Functions}}
 
  
<div id="See also">
+
[[WordPress Nonce]]
== 参考資料 ==
+
 
</div>
+
{{Nonce Functions}}
* [[WordPress Nonce|WordPressにおける nonce の実装]]
+
  
<div id="External Resources">
+
<div id="External_Resources">
 
== 外部リソース ==
 
== 外部リソース ==
 
</div>
 
</div>
 +
 
* [http://markjaquith.wordpress.com/2006/06/02/wordpress-203-nonces/ Mark Jaquith - WordPress Nonces]
 
* [http://markjaquith.wordpress.com/2006/06/02/wordpress-203-nonces/ Mark Jaquith - WordPress Nonces]
 
* [http://www.prelovac.com/vladimir/improving-security-in-wordpress-plugins-using-nonces Vladimir Prelovac - Using Nonces in WordPress Plugins]
 
* [http://www.prelovac.com/vladimir/improving-security-in-wordpress-plugins-using-nonces Vladimir Prelovac - Using Nonces in WordPress Plugins]
* Wikipedia: [[wikipedia:Cryptographic_nonce|Cryptographic Nonce]]
+
* Wikipedia: [[Wikipedia:ja:ノンス|ノンス]]
  
 
{{Tag Footer}}
 
{{Tag Footer}}
  
{{原文|WordPress Nonces|134200}}<!-- 13:50, 6 August 2013 Djkaz 版 -->
+
{{原文|Function Reference/wp_nonce_url|151651}} <!-- 07:18, 20 June 2015 Gblsm 版 -->
 +
 
 +
{{DEFAULTSORT:wp_nonce_url}}
 +
[[Category:関数]]
 +
 
 +
[[en:Function Reference/wp nonce url]]

2015年6月20日 (土) 16:53時点における最新版

この項目「関数リファレンス/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最新版との差分