2026年11月7日
2026年11月7日
WordPressのOptions APIを使った設定保存方法
はじめに
WordPressは、その柔軟性と拡張性から多くのユーザーや開発者が利用しています。Options APIは、それらのユーザーが独自の設定値を保存したり管理したりするための重要なツールです。この記事では、Options APIを使用して設定情報を保存し、それを取り出す方法を詳しく説明します。
症状・背景
- プラグイン開発時にユーザーや管理者が独自の設定値を保存する必要がある場合
- カスタムテーマで特定の設定パネルを作成したい場合
- 静的データや動的なユーザーデータを保存したい場合
- 管理画面からアクセス可能な設定情報を管理したい場合
手順・設定方法
ステップ1: オプションの登録と初期化
# プラグインまたはテーマの初期化時にオプションを設定します。
function mytheme_init() {
$default_options = array(
'option_name_1' => 'default_value_1',
'option_name_2' => 'default_value_2'
);
// オプションが存在しない場合、デフォルト値を保存
if ( get_option('mytheme_settings') === false ) {
update_option('mytheme_settings', $default_options);
}
}
add_action( 'init', 'mytheme_init' );
# データベースに既存のオプションが存在するか確認します。
$option_value = get_option('mytheme_settings');
ステップ2: オプションの更新と取得
# 特定の設定名で値を更新
function update_my_theme_setting($new_value, $setting_name) {
return update_option($setting_name, $new_value);
}
# ユーザーが設定画面から新しい値を入力した場合、その値を保存します。
update_my_theme_setting($_POST['option_name_1'], 'option_name_1');
# オプションの値を取得
$option_value = get_option('mytheme_settings');
ステップ3: 設定パネルへの追加
# 管理画面に設定ページを作成する関数を作ります。
function mytheme_create_setting_page() {
add_options_page( 'My Theme Settings', 'My Theme Settings', 'manage_options', 'my-theme-settings', 'mytheme_display_settings' );
}
// オプションページが表示されるタイミングで、設定画面のHTMLを出力します。
function mytheme_display_settings() {
$options = get_option('mytheme_settings');
// フォームを作成し、現在のオプション値を初期値として設定
echo '<form method="post" action="options.php">';
settings_fields( 'my-theme-settings' );
do_settings_sections( 'my-theme-settings' );
foreach ($options as $option_name => $option_value) {
printf('<input type="text" name="%s" value="%s">', esc_attr($option_name), esc_attr($option_value));
echo '<br>';
}
submit_button();
}
add_action('admin_menu', 'mytheme_create_setting_page');
ステップ4: 設定値の使用と管理
# テーマ内で設定値を使用する例
$setting = get_option('mytheme_settings')['option_name_1'];
echo "Your option value is: $setting";
注意事項
- セキュリティ上の注意: オプションを更新したり取得したりする際は、ユーザー入力を適切にエスケープして安全な値として扱うことが重要です。
- パフォーマンス/運用上の注意: 大量のオプションを保存するとデータベース負荷が高まることもあるので、不要なオプションは削除し定期的にメンテナンスを行うことを推奨します。
まとめ
1. 設定値の初期化: プラグインまたはテーマの初期化時にデフォルトの設定値を保存する。
2. 更新と取得: update_option()やget_option()を使用して、ユーザーからの入力に基づいて設定値を動的に変更可能にする。
3. 管理画面への追加: add_options_page()で新しいオプションページを作成し、そこで設定値の編集を行う。
4. セキュリティ: 更新や取得時にエスケープを適切に行い、入力データが安全であることを確認する。
5. パフォーマンス管理: オプション数が多い場合は定期的なメンテナンスを行い、不要なオプションは削除してデータベースの負荷を軽減する。
関連記事: