概要
add_management_page
関数は、WordPressの管理画面にツールメニューにサブメニューを登録するために用いられます。この関数は、特定のプラグイン機能や管理機能を追加する際に非常に便利です。具体的には、以下のような機能を実装する際によく使用されます。
- プラグインの設定ページを追加する
- カスタムデータのインポート/エクスポート機能を提供する
- ユーザー管理オプションを追加する
- ショートコードやウィジェットに関連する設定を追加する
- データベースのバックアップ/リストア機能を提供する
- APIの管理インターフェースを提供する
- 外部サービスとの連携を設定するページを追加する
- アナリティクスや統計データ閲覧用のダッシュボードを作成する
構文
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 |
この関数は特定のバージョンで非推奨や削除されたものではありません。