WordPressのデータベースにデータを登録したり、読み込みしたりする関数群の紹介です。
WordPress のオプションテーブル
WordPressをインストールすると、オプションテーブル wp_options が作られます。このテーブルには siteurl, admin_email, posts_per_page, date_format, user_count, current_theme 等のWordPress設定が保存されています。
このWordPressオプションテーブルの操作をする関数群を紹介します。
get_option()関数
オプションテーブルのデータを取ってくるときはget_option()
関数を使います。
get_option( $option, $default_value );
// $option : 取得したいオプション名。
// $default_value : オプションがなかった場合の戻り値。指定は任意で、指定しなかった場合は false
例: 管理者メールアドレスを取得したい場合
$admin_email = get_option( 'admin_email', 'sample@example.com' );
↑ のように書くと、管理者メールアドレスが取得できます。もし指定されていない場合は第二引数で指定した値 sample@example.com になります。
実際に使っている例は必須プラグイン mu-plugins の仕組みのounziw_notify_plugin_activated()
関数をごらんください。
add_option()関数
add_option()関数は、オプションテーブルにデータを追加する関数です。
add_option( $option, $value, $deprecated, $autoload );
// $option : 登録したいオプション名。
// $value : オプションの値。未指定の場合は ''
// $deprecated : 現在は使われていない。未指定の場合は ''
// $autoload : WordPress起動時に読み込むかどうか。'yes' か 'no' を指定する。未指定の場合は 'yes'
オプションテーブルはWordPress全体で共有なので、オプション名は他と被らないようにプレフィクス等をつけると良いでしょう。(書籍2章p.073)
$autoload は ‘yes’ にするとWordPress起動時に読み込まれます。’no’ にすると起動時に読み込まれません。 ‘yes’ に設定されたオプションが多いとパフォーマンスに悪影響を及ぼす可能性があります。
例: 通知用メールアドレスを登録したい場合
add_option( 'ounziw_notify_plugin_email', 'sample@example.com', '', 'no' );
↑ のように書くと、通知用メールアドレスをデータベースに登録できます。
登録したデータは前述のget_option()
関数で取得できます(↓)。
$ounziw_notify_plugin_email = get_option( 'ounziw_notify_plugin_email' );
update_option()関数
update_option()
関数は、オプションテーブルのデータを更新する関数です。
update_option( $option, $value, $autoload );
// $option : 登録したいオプション名。
// $value : オプションの値。未指定の場合は ''
// $autoload : WordPress起動時に読み込むかどうか。'yes' か 'no' を指定すると設定が更新されるが、null を指定すると変更しない。未指定の場合は null
add_option()
関数と似た関数にupdate_option()
関数があります。update_option()
は、オプションのデータ更新を行います。もしオプションが登録されていない場合は追加します。
$autoload は ‘yes’ にするとWordPress起動時に読み込まれます。’no’ にすると起動時に読み込まれません。null の場合は、現在の指定のままです。「オプションが無い & この引数が null」の場合は、‘yes’ で登録されます。
add_option( 'ounziw_notify_plugin_email', 'sample@example.com', '', 'no' );
// update_option()を使った場合
update_option( 'ounziw_notify_plugin_email', 'sample@example.com', 'no' );
delete_option()関数
delete_option()
関数は、オプションテーブルのデータを削除する関数です。
delete_option( $option );
// $option : 登録したいオプション名。
プラグイン等でオプションテーブルにデータを登録した場合は、プラグインをアンインストールするときに、delete_option()
を実行するようにしましょう。
更新日: