MENU

add_theme_page()

add_theme_page() は、WordPress の管理画面の「外観」メニューにカスタム設定ページを追加するための関数です。

テーマのカスタマイズ設定を提供する際に使用され、独自の設定オプションを管理者が簡単に変更できるようになります。

この関数を利用することで、テーマのユーザーが直感的に設定を変更できる管理画面を作成できます。

目次

機能の説明

add_theme_page() は、WordPress の管理画面の「外観」メニュー(Appearance)内にカスタムページを追加します。
例えば、テーマ独自のカスタマイズ設定や、テーマの使い方を説明するドキュメントページを設置する際に活用できます。

主な用途

  • テーマ専用の設定画面を追加
  • テーマのカスタマイズオプションを提供
  • テーマの説明やドキュメントページを設置
  • テーマのアップデート情報を表示

シンプルなコード例

add_theme_page('テーマ設定', 'テーマ設定', 'edit_theme_options', 'theme-settings', 'my_theme_settings_page');
  • 'テーマ設定':ページタイトル(ブラウザのタブなどに表示)
  • 'テーマ設定':メニューに表示される名前
  • 'edit_theme_options':このページにアクセスできるユーザー権限
  • 'theme-settings':メニューのスラッグ(URL識別子)
  • 'my_theme_settings_page':ページの内容を表示する関数

使い方の説明

基本的な使い方

テーマ設定ページを追加し、基本的な内容を表示する場合は以下のように記述します。

function my_theme_menu() {
    add_theme_page(
        'テーマ設定',           // ページタイトル
        'テーマ設定',           // メニュータイトル
        'edit_theme_options',   // 権限
        'theme-settings',       // メニューのスラッグ
        'my_theme_settings_page' // 表示するコールバック関数
    );
}
add_action('admin_menu', 'my_theme_menu');

function my_theme_settings_page() {
    echo '<div class="wrap">';
    echo '<h1>テーマの設定ページ</h1>';
    echo '<p>ここでテーマの設定を行います。</p>';
    echo '</div>';
}

設定フォームを追加する

以下のように settings_fields()do_settings_sections() を使用すると、WordPress の設定 API を活用してフォームを作成できます。

function my_theme_settings_page() {
    ?>
    <div class="wrap">
        <h1>テーマ設定</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('my_theme_options_group');
            do_settings_sections('theme-settings');
            submit_button();
            ?>
        </form>
    </div>
    <?php
}

一緒に使うことが多い関連タグ

add_menu_page()

管理画面のメニューに新しいトップレベルメニューを追加する。

add_menu_page('カスタムメニュー', 'カスタムメニュー', 'manage_options', 'custom-menu', 'custom_menu_page');

add_submenu_page()

既存のメニュー(プラグイン、ツールなど)にサブメニューを追加する。

add_submenu_page('themes.php', 'サブメニュー', 'サブメニュー', 'edit_theme_options', 'custom-submenu', 'custom_submenu_page');

settings_fields()

WordPress の設定 API を使用してオプションを保存する際に利用。

settings_fields('my_theme_options_group');

追加情報で取得したい場合

カスタム設定値の取得

get_option() を使って、テーマ設定の値を取得できます。

$option_value = get_option('my_theme_option_name');
echo '設定値: ' . esc_html($option_value);

カスタム設定値の更新

管理画面から取得したデータを保存する場合、update_option() を使用します。

update_option('my_theme_option_name', '新しい値');

想定されるトラブル

管理画面にページが表示されない

解決方法

  • add_theme_page()admin_menu フック内で実行しているか確認する
  • 指定した権限(edit_theme_options)を持つユーザーでログインしているか確認する

設定が保存されない

解決方法

  • settings_fields() の引数が register_setting() で登録したオプショングループと一致しているか確認
  • options.php にデータを送信しているか確認

Q&A

add_theme_page()add_menu_page() の違いは何ですか?

add_theme_page() は「外観」メニュー内にサブメニューを追加するのに対し、add_menu_page() は独立したトップレベルメニューを作成します。

設定ページのデータを保存するにはどうすればいいですか?

register_setting() でオプションを登録し、update_option() で保存できます。

add_theme_page() はプラグインでも使えますか?

使えますが、一般的には add_menu_page()add_submenu_page() を使うことが多いです。

まとめ

add_theme_page() は、WordPress の管理画面の「外観」メニュー内にカスタム設定ページを追加する関数です。

テーマ独自の設定やカスタマイズオプションを提供する際に便利で、設定の保存には settings_fields()get_option() を組み合わせることが一般的です。

他の管理画面関数と併用することで、より柔軟なカスタマイズが可能になります。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次