下面是一个代码片段:
add_action( 'admin_menu', 'travel_site' );
function travel_site(){
add_menu_page( 'Travel Site Menu', 'Travel Site', 'manage_options', 'travel-site-menu', 'ts_admin_main_page' );
add_submenu_page("travel-site-menu","View Travel Requests","View Travel Requests","manage_options","ts-view-travel-requests","ts_admin_vtr_page");
}
function ts_admin_main_page(){
echo '<div class="wrap">';
echo '<p>Testing main travel site menu page</p>';
echo '</div>';
}
function ts_admin_vtr_page(){
echo '<div class="wrap">';
echo '<p>Testing view travel requests</p>';
echo '</div>';
}问题是当添加子菜单时,顶层菜单(“Travel”)的名称作为子菜单创建。见图:

基本上我不想要“旅游网站”子菜单下的主菜单“旅游网站”,我如何删除子菜单“旅游网站”?
发布于 2018-08-02 19:41:54
实际上,您可以通过添加具有与顶层相同的菜单段格的子级别项,同时更改子菜单项标题来实现这一点。这避免了重复菜单项的外观,即使顶层的目标和第一个子菜单项是相同的。
您必须至少有两个子菜单项,其中一个将是重复的目标作为您的顶级菜单项。
例如:
add_action( 'admin_menu', 'add_travel_menu' );
function add_travel_menu() {
add_menu_page('Travel Site Menu', 'Travel Site', 'manage_options', 'travel-site-menu', 'ts_admin_main_page');
add_submenu_page('travel-site-menu', 'Travel Site', 'View Travel Site', 'manage_options', 'travel-site-menu', 'ts_admin_main_page');
add_submenu_page('travel-site-menu', 'View Travel Requests', 'View Travel Requests', 'manage_options', 'ts-view-travel-requests', 'ts_admin_main_page');
}
function ts_admin_main_page() {
if ( !current_user_can( 'manage_options' ) ) {
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
echo '<div class="wrap">';
echo '<p>Here is where the form would go if I actually had options.</p>';
echo '</div>';
}这将创建以下菜单:

函数ts_admin_main_page实际上创建了“旅游站点”和“查看旅游站点”的目的地页面。您需要创建类似的函数"ts_admin_vtr_page“,它将为”查看旅行请求“创建子页面目的地。
发布于 2015-10-25 01:00:20
没有什么好办法来做到这一点。检查_wp_menu_output函数。菜单输出的所有工作都是在这里完成的。看到那个$submenu_as_parent参数和它是如何使用的了吗?将其设置为false会产生您想要的结果,但实际上没有过滤器使其工作。在这个问题上有一个开票,但是已经有一年多没有采取行动了。除了编辑核心文件(糟糕的想法)之外,如果没有一些输出缓冲和一个非常脆弱的解决方案,您就无法解决这个问题。
https://wordpress.stackexchange.com/questions/206471
复制相似问题