织梦后台菜单如何隐藏不需要选项

需求背景

织梦后台默认包含「核心、模块、生成、采集、会员、模板、系统」七大菜单,每个菜单下又有十几个子项。对于纯内容站点来说,很多菜单(如「会员」「采集」「模块」)根本用不到,留着反而干扰编辑操作,还存在误点风险。隐藏不需要的菜单项能让后台更清爽,降低学习成本。

原因分析

1. 编辑团队需要精简界面

非技术人员看到一堆不相关菜单容易产生焦虑,精简后只看得到自己需要的操作。

2. 安全屏蔽

「系统设置」「模板管理」等高危菜单对普通管理员隐藏,即使权限泄露也无法直接修改核心配置。

3. 定制化交付

给客户交付站点时,只保留客户会用到的菜单,避免客户乱改导致站点崩溃。

隐藏方法

方法一:通过权限控制(推荐)

最规范的方式是利用用户组权限。进入「系统 → 用户组管理 → 编辑用户组」,取消不需要菜单的勾选即可。该用户组下所有账号都不会看到对应菜单。

方法二:修改菜单配置文件

织梦后台菜单定义在 dede/inc/inc_menu.php

例如要隐藏「会员」菜单,找到以下代码注释掉:

// $adminMenu1=$adminMenu1.'<m:item name="会员管理" link="member_main.php" rank="member_List" target="main" />';

方法三:CSS 隐藏(临时方案)

dede/css/frame.css 末尾追加:

/* 隐藏采集菜单 */
a:has(span:contains('采集')){display:none}

仅适用于浏览器调试,不推荐生产环境使用。

方法四:自定义菜单文件

新建 dede/inc/inc_menu_custom.php,只保留需要的菜单,在 index_menu.php 中替换引用。

配置示例

精简版 inc_menu.php 只保留内容相关菜单:

<?php
// 核心菜单
$adminMenu1='
<m:item name="内容管理" link="catalog_main.php" rank="catalog_List" target="main" />
<m:item name="文档列表" link="content_list.php" rank="a_List" target="main" />
<m:item name="待审核稿件" link="content_list.php?arcrank=-1" rank="a_Check" target="main" />
<m:item name="我发布的文档" link="content_list.php?mid='.$cuserLogin->getUserID().'" rank="a_List" target="main" />';
// 系统菜单
$adminMenu2='
<m:item name="更新主页HTML" link="makehtml_homepage.php" rank="sys_MakeHtml" target="main" />
<m:item name="一键更新网站" link="makehtml_all.php" rank="sys_MakeHtml" target="main" />';
?>

注意事项

  • 修改 inc_menu.php 前务必备份,操作失误会导致整个后台菜单消失。
  • 权限控制方式最安全,CSS 隐藏只是视觉屏蔽,懂技术的人仍能通过 URL 访问。
  • 升级织梦版本后 inc_menu.php 会被覆盖,需要重新修改或保留备份还原。
  • 隐藏菜单后,对应功能仍可通过直接输入 URL 访问,真正的隔离要靠权限控制。
建议主 admin 保留全部菜单,普通编辑账号通过权限组隐藏精简。

建议与展望

后台菜单的精简程度直接关系到编辑效率与误操作率。建议站长根据实际业务场景定制菜单结构:纯内容站只保留「内容 + 生成」,电商站加上「商品 + 订单」,资讯站加上「采集 + 审核」。把菜单调整当作一次「用户体验设计」来做,让每个角色看到的都是最贴合自己工作流的界面。今天就先导出一份当前菜单清单,对照岗位需求做一次精简,让后台清爽起来。