プラグインの管理画面でHTMLの入力を許すフィールドの扱い方
ワードプレスのプラグインを書いていると、HTMLタグを入力できるフィールドを作りたくなりますよね?
例えば、ページにデータを表示するときにその書式を入力さえるとか。
例えば、これはワードプレスのプラグインで動くシステムですが、テーマによっては出力書式を変えたくなる場合があるので、その書式をHTMLで入力させる世にした管理画面です。
構造としてはこんな感じになります。
action が入っていたら「データベースに入力フィールドを出力」
↓
「データベースから入力フィールドを読み込む」
↓
入力用表示
つまり、< > を 特殊記号に置き換えます。
wp_specialchars_decode という関数がそれをやってくれます。
データベースから値を読みだすと ” と ‘ の前に \ が付いてきます。
この \ を削除するのが wp_unslash という関数です。
毎度毎度忘れるので記録しておきます。
例えば、ページにデータを表示するときにその書式を入力さえるとか。
例えば、これはワードプレスのプラグインで動くシステムですが、テーマによっては出力書式を変えたくなる場合があるので、その書式をHTMLで入力させる世にした管理画面です。
プラグインの管理画面の流れ
構造としてはこんな感じになります。
action が入っていたら「データベースに入力フィールドを出力」
↓
「データベースから入力フィールドを読み込む」
↓
入力用表示
データベースに入力フィールドを出力
if( isset($_POST['action']) ){ update_option('unkenv_placelist', $_POST['unkenv_placelist']); : }
「データベースから入力フィールドを読み込む」
$unkenv_placelist = get_option('unkenv_placelist'); :
入力表示
<input type="text" name="unkenv_placelist" id="unkenv_placelist" value="<?php echo $unkenv_placelist; ?>">
textarea で html タグの入力を許可する
textarea で html タグの入力を許可する場合、データベースからフィールドの値を読み込んだ直後に加工します。つまり、< > を 特殊記号に置き換えます。
wp_specialchars_decode という関数がそれをやってくれます。
「データベースから入力フィールドを読み込む」
$unkenv_placelist = get_option('unkenv_placelist'); $unkenv_placelist = wp_specialchars_decode( $unkenv_placelist , ENT_QUOTES );
入力表示
<textarea name="unkenv_placelist" id="unkenv_placelist" cols="40" rows="5"><?php echo $unkenv_placelist; ?></textarea>
wp_specialchars_decode の仕様
書式string wp_specialchars_decode( string $string [ , mixed $quote_style = ENT_NOQUOTES ] )
$quote_style | 変換内容 | 変換結果 |
ENT_NOQUOTES | < > & | < > & |
ENT_QUOTES | < > & ‘ ” | < > & ‘ ” |
ENT_COMPAT | < > & ” | < > & ” |
‘single’ | < > & ‘ | < > & ‘ |
データベースに保存した HTML タグを取り出して表示する。
$unkenv_placelist = get_option('unkenv_placelist'); $unkenv_placelist = wp_unslash(get_option(‘unkenv_placelist’)); : echo $unkenv_placelist;
データベースから値を読みだすと ” と ‘ の前に \ が付いてきます。
この \ を削除するのが wp_unslash という関数です。
毎度毎度忘れるので記録しておきます。
スポンサーリンク