概要
add_submenu_page
関数は、WordPress の管理メニューにサブメニューを登録するために使用されます。この関数を使用することで、プラグインやテーマの設定ページを簡単に追加することができます。よく使われるシナリオには以下のようなものがあります。
- プラグインの設定ページを追加する
- カスタムポストタイプの管理ページを追加する
- ユーザー管理用のオプションページを追加する
- 開発者向けツールのメニューを追加する
- サイトのバックアップ設定ページを追加する
- SEO設定ページを作成する
- 分析ツールのレポートページを追加する
- カスタムフィールド管理ページを追加する
構文
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
パラメータ
$parent_slug
(string) : 親メニューのスラッグ。$page_title
(string) : ページタイトル。$menu_title
(string) : メニュータイトル。$capability
(string) : メニュー項目の表示に必要なユーザー権限。$menu_slug
(string) : サブメニューのスラッグ。$function
(callable) : サブメニューがクリックされた時に呼び出される関数。 (省略可能)
戻り値
- この関数は、成功した場合はサブメニューのフック名を返し、失敗した場合は
false
を返します。
関連する関数
使用可能なバージョン
add_submenu_page
は、WordPress 2.7.0 以降で使用可能です。
コアファイルのパス
wp-includes/plugin.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 | 〇 |
サンプルコード
サンプルコード 1: プラグインの設定ページを追加する
この例では、スラッグが my-plugin-settings
のプラグインの設定ページを追加します。
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
add_submenu_page('options-general.php', 'My Plugin Settings', 'My Plugin', 'manage_options', 'my-plugin-settings', 'my_plugin_settings_page');
}
function my_plugin_settings_page() {
echo '<h1>My Plugin Settings</h1>';
}
引用元: https://developer.wordpress.org/reference/functions/add_submenu_page/
サンプルコード 2: カスタムポストタイプの管理ページを追加する
このコードは、カスタムポストタイプ「Books」のサブメニューを追加します。
add_action('admin_menu', 'books_menu');
function books_menu() {
add_submenu_page('edit.php?post_type=books', 'Book Settings', 'Settings', 'manage_options', 'book-settings', 'book_settings_page');
}
function book_settings_page() {
echo '<h1>Book Settings</h1>';
}
引用元: https://www.wpbeginner.com/wp-tutorials/how-to-create-a-custom-post-type-in-wordpress/
サンプルコード 3: ユーザー管理用ページを追加する
このコードは、ユーザー用の設定ページを追加します。
add_action('admin_menu', 'user_settings_menu');
function user_settings_menu() {
add_submenu_page('users.php', 'User Settings', 'User Settings', 'manage_options', 'user-settings', 'user_settings_page');
}
function user_settings_page() {
echo '<h1>User Settings</h1>';
}
引用元: https://developer.wordpress.org/reference/functions/add_submenu_page/
サンプルコード 4: 開発者向けツールを追加する
このサンプルは、開発者専用のツールメニューを追加します。
add_action('admin_menu', 'dev_tools_menu');
function dev_tools_menu() {
add_submenu_page('tools.php', 'Dev Tools', 'Dev Tools', 'manage_options', 'dev-tools', 'dev_tools_page');
}
function dev_tools_page() {
echo '<h1>Developer Tools</h1>';
}
引用元: https://www.smashingmagazine.com/2017/06/customizing-wordpress-admin-menu/
サンプルコード 5: SEO設定ページを作成する
このコードは、サイトのSEO設定ページを追加します。
add_action('admin_menu', 'seo_menu');
function seo_menu() {
add_submenu_page('options-general.php', 'SEO Settings', 'SEO Settings', 'manage_options', 'seo-settings', 'seo_settings_page');
}
function seo_settings_page() {
echo '<h1>SEO Settings</h1>';
}
引用元: https://developer.wordpress.org/reference/functions/add_submenu_page/