電話番号を変えたら全ページに記載している電話番号を変えたい、電話受付時間やら住所変えたいとか
極力修正・更新はもとより制作自体も楽にしたかったので
そうだ!「ホームページ設定(サイト設定)」つくろう!と思い立った。
テーマカスタマイザーとして追加することも考えたが、なんしか幅が、、狭い。
参考にしたサイト↓
WordPress 一般ユーザ向けの「サイト設定」のカスタムメニューを作成する
1.ただ、、上記方法だと一度各項目に内容追加すると削除(空に)ができなかった。編集はいける。。
$_REQUEST[‘uketuke’]) update_option(‘uketuke’, $_REQUEST[‘uketuke’]);
…
ふむ。リクエストしてないことになるもんね。中身なしにしたから。
なら!と囲んでみた。空の場合の処理追加してみた
if($_SERVER[“REQUEST_METHOD”] == “POST”){//ポストしてからね
if ($_REQUEST[‘uketuke’]){ update_option(‘uketuke’, $_REQUEST[‘uketuke’]);}else{update_option(‘uketuke’,”) ;}//内容後あった時、ない時
}
いけたいけた。
次
2.たまにinput内にHTMLタグ(class付)入れたいと思ったら、自動変換?ダブルクォーテーション(”)にスラッシュが!勝手に挿入されるはレイアウトくずれるわ
「magic quotes」やら「Wordpress 引用符 エスケープ」やら「wp_magic_quotes」やらぐるぐる調べて以下サイトを参考にした。
WordPressでダブルクォートなどの文字が自動変換?原因と対処方法
“magic quotes”を無効にすると、なぜPHP / WordPressは自分のPOSTデータを自動エスケープしますか?
【PHP】POST送信時にクォーテーションが勝手にバックスラッシュでエスケープされてしまう【マジッククオート】【WordPress】
いやでもまぁ全部停止したいわけではない。。。
のでこーなった☟
●input部分
<input name=”uketuke” type=”text” value=”<?php echo wp_unslash(esc_html(get_option(‘uketuke’))); ?>” class=”regular-text”>
●表示とかショートコード化の部分
htmlspecialchars_decode(wp_unslash(esc_html(get_option(‘mailtext’))))
エンティティ化してスラッシュ消す、表示のときは再度HTML エンティティを文字に戻す。
若干無理やり感は感じる。。いいのか?いいか。
3.テキストラに「iframe」、つまりはグーグルマップの埋め込みコード入れたい!とおもった。
<textarea name=”maps” cols=”100″ rows=”5″><?php echo wp_unslash(esc_html(get_option(‘maps’))); ?></textarea>
<?php if (!empty(get_option(‘maps’))) { ?>
<?php echo htmlspecialchars_decode(wp_unslash(esc_html(get_option(‘maps’)))); ?>
<?php } ?>
はい。いけたぁぁ
4.エディターも使いたくなった。でもやっばり自動変換される。
ので
<?php $accdataset = array(“textarea_name” => “accdata”,”quicktags” => true);
wp_editor(html_entity_decode(stripcslashes(get_option(‘accdata’))), “accdata”, $accdataset ); ?>
よし!いけた。
表示とかショートコード部分は
apply_filters(‘the_content’, html_entity_decode(stripcslashes(get_option(‘accdata’))));
the_contentがなんか違う気がする。。実際まんま貼るとダメ。ショートコード化すればいける。
とりあえずショートコードで行くことにした。この中にショートコード含めてもOK
ちかいうちにクライアントHP制作用のサイト設定とかのコードやら、今までで使える!と思ったコードをまとめて公開しようと思ってます。