首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何只添加顶级管理菜单而不创建子级别菜单

如何只添加顶级管理菜单而不创建子级别菜单
EN

WordPress Development用户
提问于 2015-10-24 20:47:07
回答 2查看 1.1K关注 0票数 2

下面是一个代码片段:

代码语言:javascript
复制
    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”)的名称作为子菜单创建。见图:

基本上我不想要“旅游网站”子菜单下的主菜单“旅游网站”,我如何删除子菜单“旅游网站”?

EN

回答 2

WordPress Development用户

回答已采纳

发布于 2018-08-02 19:41:54

实际上,您可以通过添加具有与顶层相同的菜单段格的子级别项,同时更改子菜单项标题来实现这一点。这避免了重复菜单项的外观,即使顶层的目标和第一个子菜单项是相同的。

您必须至少有两个子菜单项,其中一个将是重复的目标作为您的顶级菜单项。

例如:

代码语言:javascript
复制
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-查看-旅行-请求

函数ts_admin_main_page实际上创建了“旅游站点”和“查看旅游站点”的目的地页面。您需要创建类似的函数"ts_admin_vtr_page“,它将为”查看旅行请求“创建子页面目的地。

票数 1
EN

WordPress Development用户

发布于 2015-10-25 01:00:20

没有什么好办法来做到这一点。检查_wp_menu_output函数。菜单输出的所有工作都是在这里完成的。看到那个$submenu_as_parent参数和它是如何使用的了吗?将其设置为false会产生您想要的结果,但实际上没有过滤器使其工作。在这个问题上有一个开票,但是已经有一年多没有采取行动了。除了编辑核心文件(糟糕的想法)之外,如果没有一些输出缓冲和一个非常脆弱的解决方案,您就无法解决这个问题。

票数 3
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/206471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档