如何控制dede导航栏显示?

99ANYc3cd6
预计阅读时长 19 分钟
位置: 首页 DEDE建站 正文
  1. 前端显示控制:通过修改模板文件,决定导航栏在页面上显示哪些内容、如何布局。
  2. 后台数据控制:通过 DedeCMS 后台,管理导航栏的项目、链接和排序。

下面我将分步详细说明。


后台数据控制:管理导航栏内容

这是最基础也是最关键的一步,你所有的导航项,如“首页”、“关于我们”、“产品中心”、“联系我们”等,都是在后台设置的。

进入导航管理

登录你的 DedeCMS 后台,找到菜单栏: 系统 -> 核心设置 -> 导航管理

或者在某些版本中,你也可以直接在: 主页 -> 全局导航管理

点击进入后,你会看到一个导航列表。

(这是一个示例截图,具体界面可能因版本略有不同)

添加、编辑、删除导航项

  • 添加导航项

    • 点击右上角的 增加主导航 按钮。
    • 在弹出的表单中填写信息:
      • 导航名称:你在页面上看到的文字,如“产品中心”。
      • 导航网址:点击该导航项后跳转的链接,可以是外部链接(如 http://www.baidu.com)或内部链接(如 /about.html)。
      • 新窗口打开:如果勾选,点击链接时会在新标签页中打开。
      • 显示这是最重要的控制选项! 如果取消勾选,这个导航项就不会在前端显示。
      • 排序:数字越小,显示位置越靠前,你可以通过调整数字来改变导航项的顺序。
    • 填写完毕后,点击 确定 保存。
  • 编辑/删除导航项

    • 在导航列表中,找到你想要修改的项,点击右侧的 修改删除 按钮即可。

小结:如果你想让某个导航项不显示,最直接的方法就是在后台 导航管理 中,取消该项的 显示 勾选,如果只是想调整顺序,修改 排序 的数值即可。


前端显示控制:修改模板文件

后台设置好数据后,你需要在前端模板文件中调用这些数据,才能让导航栏真正显示出来,导航栏的代码位于网站的头部模板文件中。

找到导航栏模板文件

导航栏的 HTML 结构通常定义在以下文件中:

  • /templets/default/ 目录下的 head.htmheader.htm 文件。
  • 有些主题可能会使用 top.htmmain.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 导航栏显示,记住这个核心思路:

  1. :在 导航管理 中增、删、改、查导航项,并设置 显示 状态和 排序
  2. 前端调显示:在 head.htm 等模板文件中,通过修改 {dede:channel} 标签的 typetypeidrow 等属性来控制哪些栏目显示、显示多少个、如何高亮。
  3. 缓存要清空:修改完成后,务必清除系统缓存。

通过以上方法,你就可以完全掌控 DedeCMS 导航栏的显示了。

-- 展开阅读全文 --
头像
C语言中二进制字符与文件如何转换处理?
« 上一篇 今天
C语言中,以下叙述正确的是哪一项?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]