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 = ''
);
引数の説明
$page_title
(必須): ページのタイトル(ブラウザのタイトルバーに表示)$menu_title
(必須): 「ツール」メニュー内に表示されるテキスト$capability
(必須): ページを表示するために必要な権限(例:manage_options
)$menu_slug
(必須): メニューのスラッグ(URLの一部になる)$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_options
をedit_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()
は、WordPress管理画面の「ツール」メニューに新しいページを追加するための関数です。
管理者向けのツールを作成する際に便利で、データ処理や設定管理ページを作成できます。ただし、メニューのアイコン設定などはできないため、カスタムメニューを作成する場合は add_menu_page()
などの他の関数と組み合わせるとよいでしょう。
コメント