テーマ設定画面を持つ複雑な構造のテーマを作るときや,プラグインを作るときに設定を保存しておく一番簡単な方法はWordPressの機能を利用してデータベースに保存してしまうことです。
MySQL(というかWPが使用しているDB)の接続コマンドを書く必要がなく,テンプレートタグを1個書くだけでOKで,あとは自動的に専用の保存領域(テーブル)に保存してくれるのでおかしなところに書き込んだりする心配もなく安全に使えます。

データを保存する

データを保存するときに使うテンプレートタグです。保存したいタイミングで,

勿論PHP文の途中なら前後の括弧は不要です。
これで hogehoge というキーに 10 という値が保存されました。

データを更新する

次はデータの更新方法です。
設定画面とかなら,保存データをオプション画面で読み出して,パラメータを弄ったらまたそれを上書き保存しておかなくてはなりません。
その時に使うのがこちら

これで hogehoge の値は 20で上書きされました。楽勝ですね。
因みに update_option は保存するキーがない場合,自動的に作って保存してくれます。
つまり,いきなり update_option (‘hoge’,100); とか書いた場合でもエラーにならず,
きちんと hoge = 100 として保存されます。
要は update_option だけおぼえとけば add_option はとりあえずしらないでもナントカなっちゃうのですね。

データを削除する

最後にデータを削除する方法です。
不要になったらキーごと削除しちゃいましょう。プラグインの場合,アンインストーラなんかに組み込んでおけば削除したときに
ゴミを残さないで済みます。
テンプレートタグはこちら

これで hogehoge というキーが消せます。

データを読み出す

で,肝心の保存したオプションを呼び出す方法ですが,

でOKです。

これでDBに保存していた hogehoge というキーの値を変数 $hogehoge に読み出すことができました。
これをうまく使えば自分用の簡単な機能拡張とかなら作れそうですね。
因みに作られたデータは wordpress が使用するデータベースの中の,
wp_options というテーブルに全部放り込まれてます。また,設定関連は殆どがここに保存されていて,ここから読み出すため,
キー名(オプション名) は他と被らないユニークなものにしておかないとほかの設定を上書きしてしまう危険性があるので気をつけましょう。
作る機能やプラグイン名でユニークな接頭辞を作っておけば被る確率も減るし,あとでphp myAdminやSequelPro等で直接DBをメンテナンスしないといけないときなんかにソートしやすくなりメンテナンス性もあがります。


※文中では便宜上キーと値という言い方をしましたが,他では呼び方が違うかもしれません。でもDBの中でもキーって呼び方でてくるし…違う呼びかたしたほうがよかったのかなぁ…?とも思ったのですが,ぱっと思いつきませんでした(苦笑

コメントする