第一个子菜单项的add_menu_page()名称不同


83

add_menu_page文件说,通过菜单标题作为第二个参数:

add_menu_page('Page Title', 'Menu Title', ...);

当以后通过添加更多页面时add_submenu_page,主页将成为子菜单中的第一项:

在此处输入图片说明


但是,我希望列表中的第一项具有不同的名称(但仍指向同一页面),即Wordpress本身的方式:

在此处输入图片说明


如何在我的插件中完成此操作?


Answers:


112

您可以使子菜单页面的“子弹”等于顶级页面的子弹,它们将指向同一位置:

add_action('admin_menu', 'my_menu_pages');
function my_menu_pages(){
    add_menu_page('My Page Title', 'My Menu Title', 'manage_options', 'my-menu', 'my_menu_output' );
    add_submenu_page('my-menu', 'Submenu Page Title', 'Whatever You Want', 'manage_options', 'my-menu' );
    add_submenu_page('my-menu', 'Submenu Page Title2', 'Whatever You Want2', 'manage_options', 'my-menu2' );
}

例如

在此处输入图片说明


这将导致重复的条目,因为Wordpress会自动为主页创建一个子菜单页。
MegaHit 2012年

4
我记得上周浏览了核心代码,并遇到了一条注释,内容类似:“如果用户尚未添加默认子菜单项”。它检查是否有子菜单项指向顶层项目。如果存在,则不添加默认值。
迈克尔·刘易斯

我想在创建自定义菜单时显示一些表格和数据,而其他选项卡显示教程链接,或者将对某些功能有所帮助
Aitazaz Khan

正是我要寻找的东西。Thanx:P
Rob DA

-3
add_submenu_page(
        'tut_theme_settings',       // parent slug
        'Front Page Elements 2',    // page title
        'Front Page 2',             // menu title
        'manage_options',           // capability
        'tut_theme_settings2',      // slug
        'theme_front_page_settings' // callback
    ); 

如果第一个子菜单的名称不同,则创建相同的父级和第一个子级,并调用相同的函数


2
与接受的答案有何不同?以及应该采取何种行动。
bravokeyl

-4

只需添加以下内容:

$submenu['my-menu'][0][0] = 'My New Menu Title';

出于调试目的,您可以print_r($menu)检查整个WP菜单。


7
哈克迪哈克。使用API​​!
理查德·斯威尼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.