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

概要

add_submenu_page 関数は、WordPress の管理メニューにサブメニューを登録するために使用されます。この関数を使用することで、プラグインやテーマの設定ページを簡単に追加することができます。よく使われるシナリオには以下のようなものがあります。

  1. プラグインの設定ページを追加する
  2. カスタムポストタイプの管理ページを追加する
  3. ユーザー管理用のオプションページを追加する
  4. 開発者向けツールのメニューを追加する
  5. サイトのバックアップ設定ページを追加する
  6. SEO設定ページを作成する
  7. 分析ツールのレポートページを追加する
  8. カスタムフィールド管理ページを追加する

構文

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/

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


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