更新日期:2021-06-29

之前文章 為控制台新增子選單 ,WordPress 還有以 add_submenu_page() 函數,延伸出按照不同種類來命名的函數。

這些函數是 add_submenu_page() 延伸,參數幾乎一模一樣,唯一差別就是不用填寫第一個參數 $parent_slug,其他參數用法一樣。

簡單介紹如下:
add_dashboard_page() ….. 在「控制台」下
add_posts_page() ….. 在「文章」下
add_media_page() ….. 在「媒體」下
add_pages_page() ….. 在「頁面」下
add_comments_page() ….. 在「留言」下
add_theme_page() ….. 在「外觀」下
add_plugins_page() ….. 在「外掛」下
add_users_page() ….. 在「使用者」下
add_management_page() ….. 在「工具」下
add_options_page() ….. 在「設定」下


如果想在自訂上層選單( add_menu_page )的底下新增子選單該怎麼做?

add_action( 'admin_menu', 'my_top_level_menu' );
function my_top_level_menu(){
    add_menu_page('Page title', 'Menu title', 'manage_options', 'my-top-level-slug', 'my_plugin_function');
    add_submenu_page( 'my-top-level-slug', 'Sub page title', 'Sub menu title', 'manage_options', 'my-top-level-slug&mode=form', 'my_plugin_function2');

    if ( ! empty( $GLOBALS['submenu'][ 'my-top-level-slug' ] ) ){
        $GLOBALS['submenu'][ 'my-top-level-slug' ][0][0] = 'Settings';
    }
}

function my_plugin_function(){ }
function my_plugin_function2(){ }