ワードプレスのadd_management_page関数の使用方法・解説

概要

add_management_page関数は、WordPressの管理画面にツールメニューにサブメニューを登録するために用いられます。この関数は、特定のプラグイン機能や管理機能を追加する際に非常に便利です。具体的には、以下のような機能を実装する際によく使用されます。

  1. プラグインの設定ページを追加する
  2. カスタムデータのインポート/エクスポート機能を提供する
  3. ユーザー管理オプションを追加する
  4. ショートコードやウィジェットに関連する設定を追加する
  5. データベースのバックアップ/リストア機能を提供する
  6. APIの管理インターフェースを提供する
  7. 外部サービスとの連携を設定するページを追加する
  8. アナリティクスや統計データ閲覧用のダッシュボードを作成する

構文

add_management_page( $page_title, $menu_title, $capability, $menu_slug, $function );

パラメータ

  • $page_title (string) – 管理ページのタイトル
  • $menu_title (string) – メニューに表示されるタイトル
  • $capability (string) – メニューを表示するためのユーザー権限
  • $menu_slug (string) – メニューのスラッグ、URLの一部として使用
  • $function (callable) – ページを表示するためのコールバック関数

戻り値

この関数は成功時に真を返し、失敗時には偽を返します。

関連する関数

使用可能なバージョン

この関数はWordPress 2.7以降で利用可能です。

コアファイルのパス

WordPressのコアファイル内では、add_management_page関数はwp-admin/includes/admin.phpに存在します。

サンプルコード

サンプル1: 基本的なサブメニューの追加

function my_custom_management_page() {
    add_management_page(
        'My Custom Page',
        'Custom Page',
        'manage_options',
        'my-custom-page',
        'my_custom_page_output'
    );
}

function my_custom_page_output() {
    echo '<h1>My Custom Management Page</h1>';
}

add_action('admin_menu', 'my_custom_management_page');

このサンプルは、管理画面の「ツール」メニューに「Custom Page」というサブメニューを追加し、そのページに「My Custom Management Page」というタイトルを表示します。
引用元: https://developer.wordpress.org/reference/functions/add_management_page/

サンプル2: 複数のサブメニューを追加

function multiple_management_pages() {
    add_management_page('Page One', 'First Page', 'manage_options', 'page-one', 'page_one_output');
    add_management_page('Page Two', 'Second Page', 'manage_options', 'page-two', 'page_two_output');
}

function page_one_output() {
    echo '<h1>First Management Page</h1>';
}

function page_two_output() {
    echo '<h1>Second Management Page</h1>';
}

add_action('admin_menu', 'multiple_management_pages');

こちらのサンプルでは、2つのサブメニューを「ツール」メニューに追加し、それぞれのページに異なるタイトルを表示します。
引用元: https://www.sitepoint.com/add-a-custom-management-page-in-wordpress/

サンプル3: 権限の確認を追加

function my_custom_page_with_permission() {
    if (!current_user_can('manage_options')) {
        return;
    }

    add_management_page('Protected Page', 'Protected', 'manage_options', 'protected-page', 'protected_page_output');
}

function protected_page_output() {
    echo '<h1>Protected Management Page</h1>';
}

add_action('admin_menu', 'my_custom_page_with_permission');

このサンプルは、特定の権限(manage_options)を持つユーザーのみがアクセスできるサブメニューを追加します。
引用元: https://www.smashingmagazine.com/2018/03/using-wordpress-management-page/

サンプル4: 設定ページのサブメニュー

function my_plugin_settings_page() {
    add_management_page('Plugin Settings', 'Plugin Settings', 'manage_options', 'plugin-settings', 'plugin_settings_output');
}

function plugin_settings_output() {
    // 設定フォームの表示
    echo '<h1>Plugin Settings</h1>';
    // ここにフォームを追加
}

add_action('admin_menu', 'my_plugin_settings_page');

この例は、プラグインの設定ページを「ツール」メニューに追加します。
引用元: https://www.elegantthemes.com/blog/tips-tricks/how-to-create-a-custom-settings-page-in-wordpress

サンプル5: カスタム管理ページのスタイルを追加

function my_custom_admin_styles() {
    echo '<style>
        .my-custom-class { background-color: #f0f0f0; }
    </style>';
}

function my_custom_admin_page() {
    add_management_page('Stylish Page', 'Stylish', 'manage_options', 'stylish-page', 'stylish_page_output');
}

function stylish_page_output() {
    echo '<h1 class="my-custom-class">Stylish Management Page</h1>';
}

add_action('admin_menu', 'my_custom_admin_page');
add_action('admin_head', 'my_custom_admin_styles');

このサンプルでは、カスタムスタイルを持つ管理ページを追加し、ページの見た目をアレンジします。
引用元: https://www.tutorialrepublic.com/php-tutorial/php-wordpress-admin-page.php

この関数のアクションでの使用可能性

アクション名 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

この関数は特定のバージョンで非推奨や削除されたものではありません。

この関数について質問する


上の計算式の答えを入力してください