主菜单链接也显示在WP管理面板的子菜单上

时间:2014-05-06 13:59:20

标签: php wordpress

我在管理面板中创建了一个自定义顶级菜单,并为该菜单添加了两个子菜单。我的代码如下:

add_action('admin_menu', 'my_create_menu');

function my_create_menu() {
    add_menu_page('My custom menu', 'My custom menu Settings', 'manage_options', __FILE__, 'my_custom_menu',plugins_url('assets/images/test.png', __FILE__));

    add_submenu_page( __FILE__ , 'My custom submenu-1', 'My custom submenu-1', 'manage_options', 'sub-suge', 'my_custom_submenu_1');
    add_submenu_page( __FILE__ , 'My custom submenu-2', 'My custom submenu-2', 'manage_options', 'sub-page', 'my_custom_submenu_2');

    add_action( 'admin_init', 'my_custom_menu' );
}

我的问题是,当我为上面的主菜单创建子菜单时,它会在子菜单的位置给出top menu link,这意味着它会给出3 submenu include main menu link。请参阅以下链接示例输出。

http://jaskokoyn.com/2013/03/20/wordpress-admin-submenus/

但我不希望主菜单链接进入子菜单。我只想要two Submenu under main menu我在代码中定义的内容。

任何人都可以为此提供更好的解决方案吗?

提前致谢。

1 个答案:

答案 0 :(得分:5)

您可以通过为顶级页面(add_menu_page()调用)提供与第一个子菜单页面相同的slug来实现此目的。然后在add_submenu_page()次调用的第一个参数中引用此slug。

以下是代码:

add_menu_page( 
    'My custom menu Settings', 
    'My custom menu Settings', 
    'manage_options', 
    'sub-suge', 
    'my_custom_menu', 
    plugins_url( 'assets/images/test.png', __FILE__ ) 
);

add_submenu_page( 
    'sub-suge' , 
    'My custom submenu-1', 
    'My custom submenu-1', 
    'manage_options', 
    'sub-suge', 
    'my_custom_submenu_1' 
);

add_submenu_page( 
    'sub-suge' , 
    'My custom submenu-2', 
    'My custom submenu-2', 
    'manage_options', 
    'sub-page', 
    'my_custom_submenu_2' 
);