自作プラグイン wp_nonce_field, check_admin_referer

http://www.imamura.biz/blog/cms/wordpress/6553

プラグインが管理画面から入力されたかどうか判定する。
送信で"wp_nonce_field", 受信で"check_admin_referer" を使う。

以下は、Codexのサンプルです。

【フォームを設置「wp_nonce_field」使用】
—-
<form method="post">
   <!– input,checkbox,radio,textareaなど追加–>
   <?php wp_nonce_field( 'name_of_my_action','name_of_nonce_field' ); ?>
</form>
—-
wp_nonce_field オプション
1.アクションの名前。実行中のコンテキストを与えてください。オプションですが推奨します。(初期値: -1),
2.nonce の名前。作成される hidden フィールドの name 属性になります。フォームが送信されると、生成された nonce 値を $_POST[$name] で参照できます。(初期値: '_wpnonce')


【フォームのデータを受信「check_admin_referer」使用】
—-
<?php
// if this fails, check_admin_referer() will automatically print a "failed" page and die.
if ( !empty($_POST) && check_admin_referer( 'name_of_my_action', 'name_of_nonce_field' ) ) {
   //データ更新の処理(update_optionなど)
}
?>
—-
if文の中にはフォームに入力された値の更新処理を書くことになるかと思います。(DBを利用するなら、update_optionなど)それで、値が不正だったら処理はしないよ、ということですね。

 

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です