add_submenu_page()


関数add_submenu_page()は、WordPressでサブメニュー項目を追加するために使用されます。

構文

add_submenu_page( string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '' );

引数の説明:

  • $parent_slug (string) — サブメニューを追加する親メニューのスラッグ。
  • $page_title (string) — 管理画面で表示されるページのタイトル。
  • $menu_title (string) — サブメニュー項目として表示される名前。
  • $capability (string) — メニューにアクセスできる権限を持つユーザー。
  • $menu_slug (string) — メニュー項目のユニークな識別子。
  • $function (callable) — ページのコンテンツを出力するコールバック関数 (省略可能)。

例 1. 基本的なサブメニューの追加

add_action( 'admin_menu', function() {
    add_submenu_page( 'tools.php', 'サンプルページ', 'サンプル', 'manage_options', 'sample-page', function() {
        echo 'これはサンプルページです。';
    });
});

例 2. カスタム設定ページの作成

add_action( 'admin_menu', function() {
    add_submenu_page( 'options-general.php', '設定ページ', '設定', 'manage_options', 'custom-settings', function() {
        echo '<h1>カスタム設定ページ</h1>';
    });
});

例 3. サブメニュー項目のリダイレクト

add_action( 'admin_menu', function() {
    add_submenu_page( 'edit.php', 'リダイレクトページ', 'リダイレクト', 'manage_options', 'redirect-page', function() {
        wp_redirect( admin_url( 'index.php' ) );
        exit;
    });
});

例 4. 非常に特定のユーザー権限に基づくサブメニュー

add_action( 'admin_menu', function() {
    add_submenu_page( 'users.php', '管理者専用ページ', '管理者', 'administrator', 'admin-only', function() {
        echo '<h1>管理者のみアクセス可能</h1>';
    });
});

例 5. 子メニュー項目を削除する方法

add_action( 'admin_menu', function() {
    add_submenu_page( 'tools.php', '削除されるページ', '削除対象', 'manage_options', 'remove-page', function() {
        echo 'これは削除されるべきページです。';
    });
    remove_submenu_page( 'tools.php', 'remove-page' );
});

注意点

  • すべてのメニュー項目には固有の$menu_slugが必要です。同じスラッグを使用すると競合が発生します。
  • $functionが空の場合、ページはデフォルトの空白ページになります。
  • 管理画面の他のプラグインと互換性を保つため、$capabilityの指定を慎重に行ってください。

関連機能: