2026年8月7日

2026年8月7日

WordPressのSettings APIを使った設定ページ作成

はじめに

WordPressのプラグインやテーマ開発において、ユーザーが利用するための設定ページを提供することは非常に重要です。しかし、その実装には複雑な手続きが必要となります。この記事では、Settings APIを使用して簡単かつ効率的にカスタム設定ページを作成する方法について説明します。

症状・背景

このテーマが必要になる主な場面:

  • ユーザーがプラグインやテーマの機能を調整したい場合
  • 複数のオプションフィールドを管理したい場合
  • グローバル設定を保存したい場合
  • パフォーマンスに影響を与えない方法でデータを保存したい場合

手順・設定方法

ステップ1: Settings APIを使用した初期化と登録

# カスタム設定ページの初期化を行う関数を呼び出す
add_action( 'admin_init', 'my_custom_settings_api_init' );

# カスタム設定ページを作成する関数を呼び出す
add_action( 'admin_menu', 'my_custom_settings_page' );

ステップ2: 設定セクションの登録

function my_custom_settings_api_init() {
    # 設定セクションの初期化
    add_settings_section(
        'my_custom_setting_section',
        __( 'カスタム設定', 'textdomain' ),
        'my_custom_setting_section_callback',
        'my_custom_page_slug'
    );

    # カスタムフィールドの登録
    register_setting( 'my_custom_setting_section', 'setting_name_1' );
}

ステップ3: 設定オプションの登録

function my_custom_settings_api_init() {
    add_settings_field(
        'setting_name_1',
        __( '設定名1', 'textdomain' ),
        'my_setting_callback_function',
        'my_custom_page_slug',
        'my_custom_setting_section'
    );
}

ステップ4: 設定ページのテンプレート作成

function my_custom_settings_page() {
    add_options_page(
        __( 'カスタム設定', 'textdomain' ),
        __( 'カスタム設定', 'textdomain' ),
        'manage_options',
        'my_custom_page_slug',
        'my_custom_settings_page_callback'
    );
}

# 設定ページの表示関数
function my_custom_settings_page_callback() {
    ?>
    <div class="wrap">
        <h2><?php _e( 'カスタム設定', 'textdomain' ); ?></h2>
        <?php settings_errors(); ?>
        <form action="options.php" method="post">
            <?php
                // ページのオプションを処理するための設定フォームHTMLを作成します。
                settings_fields( 'my_custom_setting_section' );
                do_settings_sections( 'my_custom_page_slug' );
                submit_button();
            ?>
        </form>
    </div>
    <?php
}

注意事項

  • セットアップ時のエラーを回避するために、必ずプラグインのアクティベーションやテーマのアクトビケーション時に初期化関数が呼び出されるようにする。
  • グローバルな設定値はoptions.php経由で保存されるため、その内容を適切に管理すること。
  • 重要なデータを扱う場合はセキュリティ対策を施す。例えば、フィールド名やメタボックスの名前空間を独自化する。
  • シリアライズされたオプションの使用はパフォーマンスに影響を与える可能性があるため、適切な場面で利用すること。

まとめ

1. 初期化: admin_initアクションフックを使用して設定ページの初期化を行う。

2. セクション登録: add_settings_section()関数を利用してカスタムセクションを追加する。

3. フィールド登録: register_setting(), add_settings_field()を使ってオプションフィールドを定義する。

4. テンプレート作成: カスタム設定ページのテンプレートを作成し、settings_fields()do_settings_sections()関数を使用してフォーム要素を生成する。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ