- 前端显示控制:通过修改模板文件,决定导航栏在页面上显示哪些内容、如何布局。
- 后台数据控制:通过 DedeCMS 后台,管理导航栏的项目、链接和排序。
下面我将分步详细说明。
后台数据控制:管理导航栏内容
这是最基础也是最关键的一步,你所有的导航项,如“首页”、“关于我们”、“产品中心”、“联系我们”等,都是在后台设置的。
进入导航管理
登录你的 DedeCMS 后台,找到菜单栏:
系统 -> 核心设置 -> 导航管理
或者在某些版本中,你也可以直接在:
主页 -> 全局导航管理
点击进入后,你会看到一个导航列表。

(这是一个示例截图,具体界面可能因版本略有不同)
添加、编辑、删除导航项
-
添加导航项:
- 点击右上角的
增加主导航按钮。 - 在弹出的表单中填写信息:
- 导航名称:你在页面上看到的文字,如“产品中心”。
- 导航网址:点击该导航项后跳转的链接,可以是外部链接(如
http://www.baidu.com)或内部链接(如/about.html)。 - 新窗口打开:如果勾选,点击链接时会在新标签页中打开。
- 显示:这是最重要的控制选项! 如果取消勾选,这个导航项就不会在前端显示。
- 排序:数字越小,显示位置越靠前,你可以通过调整数字来改变导航项的顺序。
- 填写完毕后,点击
确定保存。
- 点击右上角的
-
编辑/删除导航项:
- 在导航列表中,找到你想要修改的项,点击右侧的
修改或删除按钮即可。
- 在导航列表中,找到你想要修改的项,点击右侧的
小结:如果你想让某个导航项不显示,最直接的方法就是在后台 导航管理 中,取消该项的 显示 勾选,如果只是想调整顺序,修改 排序 的数值即可。
前端显示控制:修改模板文件
后台设置好数据后,你需要在前端模板文件中调用这些数据,才能让导航栏真正显示出来,导航栏的代码位于网站的头部模板文件中。
找到导航栏模板文件
导航栏的 HTML 结构通常定义在以下文件中:
/templets/default/目录下的head.htm或header.htm文件。- 有些主题可能会使用
top.htm或main.htm。
你需要登录你的 FTP 或主机文件管理器,找到并编辑这个文件。
导航栏的核心调用代码
在 head.htm 文件中,你很可能会看到类似下面的代码,这就是调用导航栏的核心:
{dede:channel type='top' row='8' currentstyle="<li class='thisclass'><a href='~typelink~'>~typename~</a></li>"}
<li><a href='[field:typelink/]' target="_blank">[field:typename/]</a></li>
{/dede:channel}
详细解析调用代码的属性
现在我们来拆解并控制这个 {dede:channel} 标签,以达到你想要的显示效果。
标签结构:
{dede:channel 属性1='值1' 属性2='值2' ...} ... [field:xxx/] ... {/dede:channel}
常用属性详解:
| 属性名 | 说明 | 示例 | 控制效果 |
|---|---|---|---|
type |
指定导航类型,这是最核心的属性。 | type='top' |
只调用顶级栏目,这是导航栏最常用的设置,它只会显示你在后台“主导航管理”中设置的一级栏目,不会显示其子栏目。 |
type='son' |
调用当前栏目的子栏目,通常用在面包屑导航或侧边栏。 | ||
type='self' |
调用当前栏目的同级栏目。 | ||
row |
显示的栏目数量。 | row='10' |
限制最多显示 10 个导航项,如果后台设置了超过10个,这里只显示前10个(按排序)。 |
currentstyle |
当前页面的样式。 | currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>" |
非常有用! 当用户访问某个页面时,对应的导航项会应用这个样式。~typelink~ 会被替换为栏目链接,~typename~ 会被替换为栏目名称。 |
typeid |
指定调用特定的栏目。 | typeid='1,3,5' |
只显示 ID 为 1, 3, 5 的这几个栏目,忽略其他所有栏目,用英文逗号隔开。 |
noself |
是否不包含当前栏目。 | noself='yes' |
当使用 type='son' 时,如果设置此属性,则不显示当前栏目本身。 |
代码实例与修改示例
默认显示所有顶级导航,当前栏目高亮
这是最常见的默认效果。
<!-- 在 head.htm 中 -->
<ul class="nav">
{dede:channel type='top' row='8' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
<li><a href='[field:typelink/]' target="_blank">[field:typename/]</a></li>
{/dede:channel}
</ul>
只显示指定的几个导航项
假设你只想让首页、关于我们、产品中心、联系我们这四个显示出来,并且你知道它们的 ID 分别是 1, 2, 3, 4。
<!-- 在 head.htm 中 -->
<ul class="nav">
{dede:channel typeid='1,2,3,4' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
<li><a href='[field:typelink/]' target="_blank">[field:typename/]</a></li>
{/dede:channel}
</ul>
注意:这里我们移除了 type='top' 和 row 属性,因为 typeid 的优先级更高,它会直接调用你指定的栏目,并且不受顶级栏目限制(如果指定的 ID 不是顶级栏目,它也能显示)。
隐藏某个导航项
假设你不想显示“产品中心”(ID 为 3),但又不想在后台删除它,因为其他地方可能还会用到。
方法:在 typeid 属性中,不包含它的 ID 即可。
<!-- 假设其他导航 ID 是 1,2,4,5... -->
<ul class="nav">
{dede:channel typeid='1,2,4,5' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
<li><a href='[field:typelink/]' target="_blank">[field:typename/]</a></li>
{/dede:channel}
</ul>
这样,“产品中心”就不会在导航栏中显示了。
高级技巧与常见问题
如何在导航栏中加入“首页”链接?
默认情况下,{dede:channel type='top'} 不会调用“首页”,因为“首页”不是一个栏目,你需要手动添加。
<ul class="nav">
<!-- 手动添加首页 -->
<li><a href='{dede:global.cfg_basehost/}/'>首页</a></li>
<!-- 调用其他顶级栏目 -->
{dede:channel type='top' row='8' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
<li><a href='[field:typelink/]' target="_blank">[field:typename/]</a></li>
{/dede:channel}
</ul>
{dede:global.cfg_basehost//} 会自动输出你的网站域名,这样链接更规范。
如何让导航项在新窗口打开?
在后台“导航管理”中为每个链接设置“新窗口打开”是最简单的方法,如果你想统一控制,可以在模板中修改 <a> 标签,给所有链接都加上 target="_blank"。
{dede:channel type='top' row='8' currentstyle="<li class='active'><a href='~typelink~' target='_blank'>~typename~</a></li>"}
<li><a href='[field:typelink/]' target="_blank">[field:typename/]</a></li>
{/dede:channel}
注意:这样所有链接都会在新窗口打开,包括首页,请根据需求谨慎使用。
清除缓存
无论你在后台修改导航,还是在前端修改模板文件,修改后一定要清除 DedeCMS 的缓存,否则可能看不到效果。
- 后台清除缓存:
系统->一键更新网站->更新缓存-> 点击开始执行。 - FTP 清除缓存:登录 FTP,删除
/data目录下的cache_cache文件夹里的内容。
控制 DedeCMS 导航栏显示,记住这个核心思路:
- :在
导航管理中增、删、改、查导航项,并设置显示状态和排序。 - 前端调显示:在
head.htm等模板文件中,通过修改{dede:channel}标签的type、typeid、row等属性来控制哪些栏目显示、显示多少个、如何高亮。 - 缓存要清空:修改完成后,务必清除系统缓存。
通过以上方法,你就可以完全掌控 DedeCMS 导航栏的显示了。
