如何在AnQiCMS中创建和显示多级导航菜单?

📅 👁️ 65

在网站运营中,清晰有效的导航菜单是用户体验的核心,它能帮助访问者快速找到所需信息。安企CMS(AnQiCMS)深知这一点,为您提供了灵活且强大的功能,让您可以轻松创建和管理多级导航菜单,无论是简单的两级下拉菜单,还是结合动态内容展示的复杂菜单,都能满足您的需求。

接下来,我们将一起了解如何在AnQiCMS中创建和显示多级导航菜单。

一、后台管理:构建导航菜单的基础

创建多级导航菜单的第一步,是在AnQiCMS的后台管理界面进行设置。这里不仅可以定义菜单项,还能规划它们的层级关系。

1. 访问导航设置

登录您的AnQiCMS后台,在左侧的菜单栏中,找到并点击“后台设置”,然后选择“导航设置”选项。这里是您管理所有网站导航的中心。

2. 创建导航类别(可选,但推荐)

AnQiCMS默认提供了一个名为“默认导航”的类别,通常用于网站的主导航。但如果您的网站需要多个导航区域,比如顶部主导航、页脚导航、侧边栏导航,或者针对特定场景的特殊导航,您可以创建新的导航类别。

在“导航类别管理”部分,点击“新增导航类别”,输入一个有意义的名称(例如“页脚导航”、“侧边菜单”),保存后,您就拥有了一个独立的导航区域,方便未来管理和调用。

3. 添加导航链接:定义菜单结构

这是创建多级导航的核心步骤。在“导航链接设置”区域,您会看到“添加导航链接”按钮。点击它,就可以开始定义您的菜单项了。

  • 显示名称:这是导航菜单上展示给用户的文字。
  • 链接类型:AnQiCMS提供了三种灵活的链接类型,您可以根据需要选择:
    • 内置链接:包括网站首页、文章模型首页、产品模型首页等系统预设的页面。
    • 分类页面链接:您可以直接选择已创建的文章分类、产品分类或单页面作为导航链接,让菜单项动态指向您的内容。
    • 外部链接:如果您需要链接到站外网站,或者站内某个自定义URL,可以选择此项并填写完整的链接地址。
  • 上级导航:这是实现多级菜单的关键。
    • 要创建一级菜单,请选择“顶级导航”作为上级。
    • 要创建二级菜单(即一级菜单的下拉子菜单),请从列表中选择一个已存在的一级导航作为其上级。目前AnQiCMS支持直接在后台配置两级导航。
  • 显示顺序:通过设置数字大小来决定菜单项的排列顺序,数字越小越靠前。
  • 子标题名称与导航描述:这些字段提供了额外的文字信息,可以在模板中调用,让您的导航菜单内容更丰富,例如为菜单项添加英文翻译或简短介绍。

重复以上步骤,您可以为不同导航类别添加多个一级菜单,并在这些一级菜单下创建相应的二级子菜单,从而构建出清晰的导航层级。

二、模板调用:在网站前端展示导航菜单

后台配置好导航菜单后,下一步就是将这些菜单结构在您的网站前端显示出来。AnQiCMS采用了Django模板引擎语法,通过特定的模板标签,您可以非常灵活地将导航数据渲染到页面上。

1. 找到模板文件

导航菜单通常会出现在网站的公共头部(header)或侧边栏、页脚等位置。根据您的模板设计,您可能需要在 /template 目录下当前模板文件夹中的 bash.html(公共基础模板)或 partial/header.html(头部片段)等文件中进行编辑。

2. 使用navList标签调用导航数据

navList是AnQiCMS专为调用导航列表设计的模板标签。

您可以使用以下基本结构来调用导航数据:

{% navList navs with typeId=1 %}
    <ul>
        {%- for item in navs %}
            <li class="{% if item.IsCurrent %}active{% endif %}">
                <a href="{{ item.Link }}">{{item.Title}}</a>
                {%- if item.NavList %} {# 判断是否有下级导航 #}
                <dl>
                    {%- for inner in item.NavList %} {# 遍历二级导航 #}
                        <dd class="{% if inner.IsCurrent %}active{% endif %}">
                            <a href="{{ inner.Link }}">{{inner.Title}}</a>
                        </dd>
                    {% endfor %}
                </dl>
                {% endif %}
            </li>
        {% endfor %}
    </ul>
{% endnavList %}
  • {% navList navs with typeId=1 %}:这个标签用于获取导航列表数据。navs是您为导航列表定义的变量名,typeId=1表示调用ID为1的导航类别(通常是默认导航)。如果您创建了其他导航类别,请将typeId替换为相应类别的ID。
  • {% for item in navs %}:这里会遍历所有的一级导航菜单项。
  • item.Titleitem.Link:分别用于显示菜单项的名称和链接地址。
  • {% if item.IsCurrent %}IsCurrent是一个布尔值,如果当前页面与该导航项匹配,它会返回true。您可以利用这个属性为当前页面对应的导航项添加高亮样式,提升用户体验。
  • {% if item.NavList %}:这是实现多级导航的关键。NavList是当前菜单项的子菜单集合。如果NavList存在(即该一级菜单下有二级菜单),则进入嵌套循环。
  • {% for inner in item.NavList %}:这个循环会遍历所有二级导航菜单项,同样可以使用inner.Titleinner.Linkinner.IsCurrent来渲染。

3. 丰富您的导航菜单:结合动态内容

虽然后台直接支持两级导航,但通过模板标签的灵活组合,您可以创建视觉上更丰富、层级更深的菜单。例如,在一个二级菜单项下,显示其关联分类的最新文章列表或所有子分类列表。

示例:在二级菜单项下显示最新文章

假设您有一个一级导航“产品”,其下有一个二级导航“电子产品”,您希望在鼠标悬停在“电子产品”上时,除了显示“电子产品”链接,还能显示“电子产品”分类下的几篇最新产品文章。

<ul>
    {% navList navList with typeId=1 %}
    {%- for item in navList %}
    <li>
        <a href="{{ item.Link }}">{{item.Title}}</a>
        {%- if item.NavList %}
        <ul class="nav-menu-child">
            {%- for inner in item.NavList %}
            <li>
                <a href="{{ inner.Link }}">{{inner.Title}}</a>
                {% if inner.PageId > 0 %} {# 假设PageId存储了关联的分类ID #}
                    {% archiveList products with type="list" categoryId=inner.PageId limit="8" %}
                    {% if products %}
                    <ul class="nav-menu-child-child">
                        {% for product in products %}
                        <li><a href="{{product.Link}}">{{product.Title}}</a></li>
                        {% endfor %}
                    </ul>
                    {% endif %}
                    {% endarchiveList %}
                {% endif %}
            </li>
            {% endfor %}
        </ul>
        {% endif %}
    </li>
    {% endfor %}
    {% endnavList %}
</ul>

在这个例子中,我们在一级导航的二级菜单项中,通过inner.PageId获取到关联的分类ID,

相关文章

如何在文章详情页显示“上一篇”和“下一篇”文章链接?

在网站内容运营中,优化用户的阅读体验始终是我们的核心目标之一。当我们沉浸在一篇精彩的文章中时,自然而然会希望能够流畅地切换到相关或下一篇文章,无需回到列表页重新寻找。这种无缝的导航不仅能有效提升用户在网站上的停留时间,降低跳出率,更有助于搜索引擎更好地理解网站内容结构,从而对SEO产生积极影响。 安企CMS为此提供了一套非常直观且易于使用的解决方案

2025-11-08

如何根据文章的创建时间或浏览量对列表进行排序显示?

在网站内容运营中,内容的呈现顺序对用户体验和信息传达效率至关重要。无论是新闻门户、技术博客还是产品展示网站,根据不同的运营目标,合理地调整内容列表的排序方式,能够显著提升网站的活力与吸引力。安企CMS(AnQiCMS)深谙此道,提供了直观且强大的功能,让我们能够轻松地根据文章的创建时间或浏览量对内容列表进行排序显示。 ###

2025-11-08

AnQiCMS如何实现文章列表的分页显示功能?

文章列表的分页显示功能对于任何内容管理系统来说都至关重要,它不仅能提升用户浏览体验,避免单页内容过长导致加载缓慢,更能帮助搜索引擎更好地抓取和索引网站内容。在AnQiCMS中,实现这一功能既灵活又高效,得益于其简洁的模板标签设计。 接下来,我们将一起了解如何在AnQiCMS中轻松实现文章列表的分页显示。 ### AnQiCMS中分页功能的核心组件 在AnQiCMS的模板系统中

2025-11-08

如何在前端页面中显示文章或产品的浏览量?

让内容活力尽显:在安企CMS前端页面轻松展示文章或产品浏览量 在网站运营中,文章或产品的浏览量往往是衡量内容受欢迎程度的一个重要指标。它不仅能为访问者提供直观的参考,形成“社会认同”效应,引导他们发现热门内容,也能帮助运营者快速识别高价值内容。安企CMS作为一款高效的内容管理系统,充分考虑了用户的实际需求,让在前端页面展示文章或产品的浏览量变得非常简单直观。 接下来

2025-11-08

如何在导航菜单中高亮显示当前访问的页面链接?

当用户访问您的网站时,一个清晰、直观的导航菜单能显著提升他们的浏览体验。其中一项重要的优化就是让导航菜单能够智能地高亮显示当前访问的页面链接,让访客一目了然地知道自己身处网站何处。安企CMS提供了简洁而强大的方式来实现这一功能,无需复杂的开发,只需在模板中进行巧妙配置。 ### 理解安企CMS的导航机制 安企CMS内置了灵活的模板标签系统,其中处理导航菜单的核心是“导航列表标签

2025-11-08

AnQiCMS如何设置和显示网站的页眉、页脚和侧边栏等公共区域?

在网站运营中,页眉、页脚和侧边栏等公共区域扮演着至关重要的角色。它们不仅承载着品牌形象、导航功能,更是提升用户体验和内容分发效率的关键。对于使用AnQiCMS的朋友们来说,理解如何高效设置和展示这些区域,将极大提升网站的专业度和运营便利性。 AnQiCMS作为一个基于Go语言开发的企业级内容管理系统,在设计之初就充分考虑了模板的灵活性和可扩展性。这意味着,无论是打造一个简洁的企业官网

2025-11-08

如何在网站页面中正确显示面包屑导航路径?

在AnQiCMS中优雅地配置面包屑导航:提升用户体验与SEO表现 当你访问一个网站时,面包屑导航就像一个贴心的向导,它能清晰地告诉你当前页面在网站结构中的位置。从首页一路延伸到你正在浏览的页面,它不仅能帮助用户快速理解网站层级,还能方便他们回溯到上级页面。对于网站的搜索引擎优化(SEO)而言,合理的面包屑导航也能让搜索引擎更好地理解网站结构,从而可能带来更好的抓取和排名效果

2025-11-08

AnQiCMS如何设置和显示网站的SEO标题、关键词和描述(TDK)?

在构建网站时,搜索引擎优化(SEO)是确保内容被搜索引擎发现、吸引潜在访客的关键一环。而SEO标题(Title)、关键词(Keywords)和描述(Description),简称TDK,是网站优化中最基础也是最重要的元素之一。它们直接影响网站在搜索结果中的展现方式和点击率。 AnQiCMS在设计之初就充分考虑了SEO友好性,内置了完善的TDK设置功能

2025-11-08