[WordPress] 投稿や固定ページにPOST/GETの値を表示したい
- フォームから送信したPOSTやGETの値を表示したいというケースがあります
- phpのecho関数を使うのが素直な方法ですが、この場合、投稿や固定ページのテンプレートに手を入れる必要があります
- そこで、POSTとGETの表示処理をショートコード化することで、テンプレートに手を入れずに値を表示する方法を検討しました
POSTを表示するサンプルコード
functions.php
function sc_disp_post($atts) {
extract(shortcode_atts(
array(
'key' => '',
), $atts)
);
ob_start();
echo $_POST[$key];
$html = ob_get_contents();
ob_end_clean();
return $html;
}
add_shortcode('post', 'sc_disp_post');
ショートコードの呼び出し
[post key='test']
GETを表示するサンプルコード
functions.php
function sc_disp_get($atts) {
extract(shortcode_atts(
array(
'key' => '',
), $atts)
);
ob_start();
echo $_GET[$key];
$html = ob_get_contents();
ob_end_clean();
return $html;
}
add_shortcode('get', 'sc_disp_get');
ショートコードの呼び出し
[get key='test']
補足・解説
- ショートコードを呼び出す際は、引数keyに表示したいPOST/GETの項目名を指定します
- 表示するタイミングの都合上、valueなどの属性の中でショートコードを呼び出しても値を表示することはできません(ショートコードがそのまま出力されてしまいます)
- 属性の中で使いたい場合は、出力するhtmlに対して置換をかけるなどのもうひと手間が必要になります
ご質問など受け付けています
記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。
ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。