MENU

add_management_page()

add_management_page() は、WordPressの管理画面の「ツール」メニューにカスタムページを追加するための関数です。この関数を利用すると、プラグインやカスタマイズ機能専用の設定ページを簡単に作成できます。例えば、データのインポート・エクスポート機能やバッチ処理の実行用ページを追加するのに適しています。

この関数は add_menu_page()add_submenu_page() とは異なり、「ツール」メニューの中にサブメニューとして追加される点が特徴です。特に、特定の管理者向けの機能を提供したい場合に便利です。

目次

機能の説明

add_management_page() は、WordPressの管理画面にカスタムツールページを追加するための関数です。この関数を使用すると、プラグインやカスタム機能の専用ページを「ツール」メニュー内に追加できます。

  • 管理者向けのツールページを作成
  • データの一括処理機能を提供
  • システムメンテナンス用の管理機能を実装

この関数は admin_menu アクションフック内で使用します。

シンプルなコード例

function custom_management_page() {
    add_management_page(
        'カスタムツール',       // ページタイトル
        'カスタムツール',       // メニュータイトル
        'manage_options',       // 必要な権限
        'custom-tool',          // メニューのスラッグ
        'custom_tool_page_callback' // コールバック関数
    );
}
add_action('admin_menu', 'custom_management_page');

function custom_tool_page_callback() {
    echo '<h1>カスタムツールページ</h1>';
    echo '<p>このページでは特定の管理機能を提供します。</p>';
}
  • 'カスタムツール':管理画面に表示されるページタイトルとメニュータイトル
  • 'manage_options':このページを表示できる最低限の権限(管理者のみ)
  • 'custom-tool':ページの識別用スラッグ
  • 'custom_tool_page_callback':ページの内容を出力する関数

このコードを functions.php やプラグインファイルに追加することで、「ツール」メニュー内に「カスタムツール」が追加されます。

使い方の説明

add_management_page() の引数

add_management_page(
    string $page_title, 
    string $menu_title, 
    string $capability, 
    string $menu_slug, 
    callable $callback = ''
);

引数の説明

  1. $page_title(必須): ページのタイトル(ブラウザのタイトルバーに表示)
  2. $menu_title(必須): 「ツール」メニュー内に表示されるテキスト
  3. $capability(必須): ページを表示するために必要な権限(例:manage_options
  4. $menu_slug(必須): メニューのスラッグ(URLの一部になる)
  5. $callback(省略可): ページのHTMLを出力する関数

詳細な実装例

function my_custom_management_page() {
    add_management_page(
        'データエクスポート',
        'データエクスポート',
        'manage_options',
        'export-data',
        'export_data_page'
    );
}
add_action('admin_menu', 'my_custom_management_page');

function export_data_page() {
    ?>
    <div class="wrap">
        <h1>データエクスポート</h1>
        <form method="post">
            <input type="submit" name="export_csv" value="CSVをエクスポート">
        </form>
    </div>
    <?php
}

この例では、CSVデータのエクスポート機能を持つ管理ページを追加しています。

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

add_menu_page()

管理画面の「ツール」メニューではなく、独自のメニューを作成したい場合に使用。

add_menu_page(
    'カスタム管理ページ',
    'カスタム管理',
    'manage_options',
    'custom-admin',
    'custom_admin_page_callback'
);

add_submenu_page()

既存のメニューのサブメニューとして追加する場合に使用。

add_submenu_page(
    'tools.php',
    'サブメニュー',
    'サブメニュー',
    'manage_options',
    'custom-submenu',
    'custom_submenu_page_callback'
);

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

管理画面のメニューを取得したい場合は global $submenu; を利用します。

global $submenu;
print_r($submenu['tools.php']);

これにより、ツールメニュー内のページ一覧が取得できます。

想定されるトラブル

「ツール」メニューに追加されない

  • admin_menu フックが適切に設定されていない
  • ユーザーの権限が不足している
  • functions.php ではなくプラグイン内で記述している場合、適切な場所でフックを実行していない

解決方法

  • admin_menu フックを確認
  • manage_optionsedit_posts などに変更して権限を調整
  • current_user_can('manage_options') で権限チェックを行う
if (current_user_can('manage_options')) {
    add_management_page('設定', '設定', 'manage_options', 'custom-settings', 'custom_settings_page');
}

Q&A

add_management_page() で追加されたページのURLは?

wp-admin/tools.php?page=スラッグ の形になります。

add_management_page() で作成したページにスタイルを適用する方法は?

admin_enqueue_scripts フックを利用してCSSを読み込めます。

function my_admin_styles($hook) {
    if ($hook == 'tools_page_custom-tool') {
        wp_enqueue_style('my-custom-style', plugins_url('style.css', __FILE__));
    }
}
add_action('admin_enqueue_scripts', 'my_admin_styles');

メニューのアイコンを変更できますか?

add_management_page() では変更できません。独自のメニューを作成する add_menu_page() を使用する必要があります。

まとめ

add_management_page() は、WordPress管理画面の「ツール」メニューに新しいページを追加するための関数です。

管理者向けのツールを作成する際に便利で、データ処理や設定管理ページを作成できます。ただし、メニューのアイコン設定などはできないため、カスタムメニューを作成する場合は add_menu_page() などの他の関数と組み合わせるとよいでしょう。

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

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次