WordPressのデータベースにはwp_optionsというテーブルがあります。
自作のプラグインやテーマの設定値を保持する用途などで使用されますが、
実際のデータの操作方法について簡単にまとめました。
wp_optionsにデータを追加する方法
第一引数には任意の識別用キー、第二引数には値を指定します。
add_option('option_data_key', 'こんにちは');
もしくは
update_option('option_data_key', 'こんにちは');
update_optionは、キーに対応するデータが存在しなかった時、add_optionを裏で呼び出してデータを登録するようになっています。
よって、add_optionを使用しないほうが簡潔なコードになることが多いです。
wp_optionsのデータを更新する方法
第一引数には任意の識別用キー、第二引数には値を指定します。
追加の方とほぼ変わらないです。
update_option('option_data_key', 'こんばんは');
wp_optionsのデータを削除する方法
第一引数には任意の識別用キーを指定します。
delete_option('option_data_key');
wp_optionsのデータを取得する方法
第一引数には任意の識別用キーを指定します。
$data = get_option('option_data_key');
第二引数には、第一引数に対応するデータが存在しなかった場合に返すデータを指定します。
何も指定しなかったときは、falseが返却されるようになっています。
$data = get_option('option_data_keys', 'そんなデータないよん'); //データが存在しない場合
echo data; //そんなデータないよん
配列を追加したときの挙動について
例として、国と首都の連想配列をwp_optionに保存します。
$val = array(
'Japan' => 'Tokyo',
'USA' => 'Washington, D.C.',
'Italy' => 'Roma',
);
update_option('capital', $val);
option_valueカラムのデータを参照すると、こうなってます。
a:3:{s:5:"Japan";s:5:"Tokyo";s:3:"USA";s:16:"Washington, D.C.";s:5:"Italy";s:4:"Roma";}
「a:(n)」の組み合わせは、n個の配列であることを表し、
「s:(n)」の組み合わせは、n文字のStringであることを表します。
WordPresで配列を wp_option に保存する際には、上記の「型・長さ情報」と、「データ」を組み合わせて保存するようになっています。
get_option()で取得したらphpで連想配列としてそのまま使用できるようになっています。
$option = get_option('capital');
echo $option['Japan']; //Tokyo
これは、phpのserialize()、unserialize()を内部で実行しているということですね。
通常はこの仕様について理解しなくても大丈夫でしょうが、把握しておいて損はないと思います。
コメント