在我正在创建的wordpress插件中,它正在创建一个带有子菜单页面的新顶级管理菜单。这是我的代码:
add_menu_page('Eastview Custom', 'Eastview Custom', 5,"eastview-custom");
add_submenu_page("eastview-custom","GLS Lunch Orders","GLS Lunch",5,'glsLunch','glsLunch');
因此,此代码会创建一个新的管理菜单“Eastview Custom”。然后它添加了两个子链接:“Eastview Custom”和“GLS Lunch”。问题是我不希望“Eastview Custom”作为子链接。我想唯一的子链接是“GLS午餐”。我无法弄清楚如何做到这一点。谢谢你的帮助!
答案 0 :(得分:8)
根据法典
在插件创建自己的顶级菜单的情况下,第一个子菜单通常具有与顶级菜单相同的链接标题,因此链接将被复制。第一次调用add_submenu_page函数时,可以避免重复的链接标题,同时给出parent_slug和menu_slug参数相同的值。
您可以在此页面上看到:http://codex.wordpress.org/Adding_Administration_Menus#Sub-Menus
因此,根据Codex,您应该能够拥有以下内容(请注意,我已将用户级别参数替换为不推荐使用的功能,并将其全部标准化为单引号);
add_menu_page('Eastview Custom', 'Eastview Custom', 'manage_options', 'my-top-level-handle');
add_submenu_page( 'my-top-level-handle', 'GLS Lunch Orders', 'GLS Lunch', 'manage_options', 'my-top-level-handle');
现在你认为这可以在食典委的基础上发挥作用 - 但事实并非如此。它不会显示任何子菜单项,因为它们只有一个。如果你添加另一个项目,你会发现这是有效的,即;
add_menu_page('Eastview Custom', 'Eastview Custom', 'manage_options', 'my-top-level-handle');
add_submenu_page( 'my-top-level-handle', 'GLS Lunch Orders', 'GLS Lunch', 'manage_options', 'my-top-level-handle');
add_submenu_page( 'my-top-level-handle', 'New Item', 'New item', 'manage_options', 'new-handle');
希望这有点帮助,很遗憾我找不到单个列表项的答案!
答案 1 :(得分:1)
另一种方法是您可以在创建主菜单后删除子菜单
add_menu_page('Eastview Custom', 'Eastview Custom', 5,"eastview-custom");
add_submenu_page("eastview-custom","GLS Lunch Orders","GLS Lunch",5,'glsLunch','glsLunch');
remove_submenu_page("eastview-custom", "eastview-custom");
答案 2 :(得分:0)
您可以使用此功能
function custom_add_admin_menu_page($args = []) {
$args = wp_parse_args($args, [
'page_title' => '',
'menu_title' => '',
'capability' => 'manage_options',
'function' => false',
'menu_slug' => '',
'icon_url' => '',
'position' => 20,
]);
add_menu_page(
$args['page_title'],
$args['menu_title'],
$args['capability'],
$args['menu_slug'],
$args['function'],
$args['icon_url'],
$args['position']
);
add_action('admin_head', function () use ($args) {
if (!$args['function']) {
remove_submenu_page($args['menu_slug'], $args['menu_slug']);
}
}, 99);
}
并使用如下
custom_add_admin_menu_page([
'page_title' => __('your page title', 'your domain'),
'menu_title' => __('your menu title', 'your domain'),
'menu_slug' => 'your slug',
'icon_url' => 'dashicons-page',
'position' => 20,
]);