怎样在导航栏中显示二级或多级分类列表?

📅 👁️ 88

网站导航就像是您的网站的骨架,它引导访客浏览网站的不同部分,找到他们感兴趣的内容。一个清晰、直观的导航系统对于提升用户体验和网站的专业度至关重要。安企CMS深知这一点,为您提供了灵活多样的方案来构建和管理网站的导航,特别是对于需要展示二级甚至多级分类列表的复杂导航结构。

今天,我们就来深入了解如何在安企CMS中设置并显示这些层级分明的分类列表,让您的网站导航更加强大和智能。

安企CMS导航体系概览

在安企CMS中,网站的导航管理集中在后台的“后台设置”区域,具体是“网站导航设置”功能。在这里,您可以创建不同类型的导航菜单,比如主导航、页脚导航或侧边栏导航等。系统默认提供了一个“默认导航”类别,您可以直接在其基础上进行修改,也可以根据需要创建新的导航类别。

导航链接的类型非常灵活,您可以选择:

  • 内置链接:指向网站的首页、不同内容模型的首页(如文章首页、产品首页等)。
  • 分类页面链接:直接关联到您已创建的文章分类或产品分类。
  • 外部链接:可以指向站内任意URL,甚至是站外其他网站的链接。

对于多级分类列表,安企CMS主要提供了两种实现方式:一种是利用内置导航功能直接配置多级菜单,另一种是基于分类数据动态生成多级列表,两者各有侧重。

方法一:利用内置导航功能构建多级列表

这种方法适用于导航结构相对固定,或者您希望对每个导航项的显示内容进行精细化控制的场景。安企CMS的内置导航支持最多两级的导航链接,也就是一级主菜单和其下的二级子菜单。

第一步:在后台配置多级导航

  1. 进入导航设置:登录安企CMS后台,点击左侧菜单的“后台设置”,然后选择“网站导航设置”。
  2. 管理导航类别:如果您想创建除了“默认导航”以外的其他导航区域(比如“页脚导航”),可以在“导航类别管理”中新增。对于普通主导航,直接使用“默认导航”即可。
  3. 添加一级导航链接
    • 点击“添加导航链接”按钮。
    • “上级导航”选择“顶级导航”。
    • 填写“显示名称”(比如“产品中心”、“关于我们”)。
    • 选择“链接类型”,如果您希望这个导航项指向某个分类,就选择“分类页面链接”,然后选择对应的分类。
    • 设置“显示顺序”,数字越小越靠前。
  4. 添加二级导航链接
    • 再次点击“添加导航链接”。
    • 这次“上级导航”就不能选“顶级导航”了,而是选择您刚刚创建的一级导航项(比如“产品中心”)。
    • 同样填写“显示名称”,选择“链接类型”,并关联到相应的分类或页面。
    • 设置“显示顺序”。

通过这种方式,您可以清晰地在后台管理每个导航项的显示文字、链接地址和所属层级。

第二步:在前端模板中调用并显示

配置好后台导航后,您需要在前端模板中通过navList标签来调用这些数据。通常,这部分代码会放在 header.htmlbase.html 这样的公共模板文件中。

navList标签的使用方式如下:

{% navList navs with typeId=1 %} {# typeId=1 默认为主导航,如果自定义了类别请填写对应ID #}
<ul class="main-nav">
    {%- for item in navs %} {# 遍历一级导航项 #}
        <li class="{% if item.IsCurrent %}active{% endif %}">
            <a href="{{ item.Link }}">{{item.Title}}</a>
            {%- if item.NavList %} {# 判断当前一级导航项是否有二级子菜单 #}
            <dl class="sub-nav">
                {%- 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 %}

在上面的代码中,navs 变量会包含您在后台配置的所有一级导航项,每个 item 都代表一个导航项。如果 item.NavList 存在,则表示该导航项下有二级子菜单,您可以再次使用 for 循环遍历 item.NavList 来显示二级菜单内容。item.IsCurrent 属性可以帮助您判断当前导航项是否是当前页面,从而添加 active 类名来高亮显示。

进阶用法:在二级导航下显示对应内容

有时候,您可能希望在二级导航项展开时,不仅显示子分类名称,还能直接列出该分类下的文章或产品列表。这在产品展示或资讯网站中非常实用。安企CMS通过 item.PageId 字段提供了实现这种功能的可能性,item.PageId会返回当前导航项所关联的分类或页面的ID。

例如,在一个产品导航中,显示二级分类下的8个产品:

<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>
                {% archiveList products with type="list" categoryId=inner.PageId limit="8" %} {# 使用 inner.PageId 获取产品列表 #}
                {% 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 %}
            </li>
            {% endfor %}
        </ul>
        {% endif %}
    </li>
    {% endfor %}
    {% endnavList %}
</ul>

另一个常见需求是在二级导航下显示其三级分类,以此类推。这时,您可以在inner循环内部再次使用categoryList标签:

<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 %}
                    {% categoryList categories with parentId=inner.PageId %} {# 使用 inner.PageId 获取三级分类 #}
                    {% if categories %}
                    <ul>
                        {% for subCategory in categories %}
                        <li>
                            <a href="{{ subCategory.Link }}">{{subCategory.Title}}</a>
                        </li>
                        {% endfor %}
                    </ul>
                    {% endif %}
                    {% endcategoryList %}
                {% endif %}
            </li>
            {% endfor %}
        </ul>
        {% endif %}
    </li>
    {% endfor %}
    {% endnavList %}
</ul>

方法二:纯分类驱动的动态多级导航

如果您的网站分类结构非常庞大,并且经常有调整,或者您希望导航完全根据分类的层级关系动态生成,那么直接使用 categoryList 标签构建导航会更加高效。这种方法可以实现任意深度的多级分类列表。

第一步:确保分类结构完善

首先,您需要在安企CMS后台的“内容管理”->“文档分类”中,确保您的分类层级关系已经设置好。例如,一级分类下有二级分类,二级分类下有三级分类等。

第二步:在前端模板中动态调用

通过递归调用或嵌套 categoryList 标签,您可以轻松构建出多级分类导航。

以下是一个三级分类导航的示例代码:

”`twig {% categoryList topCategories with moduleId=“1” parentId=“0” %} {# 获取文章模型的顶级分类 #}

    {% for level1_item in topCategories %} {# 遍历一级分类 #}
    <li>
        <a href="{{ level1_item.Link }}">{{level1_item.
    

相关文章

如何使用`archiveList`标签按浏览量排序显示热门文章列表?

在安企CMS中,如何通过 `archiveList` 标签展示热门文章列表? 在内容运营中,将网站上的热门文章清晰地展示给访客,不仅能有效提升用户体验,引导用户发现更多精彩内容,还能通过内容的有效分发,间接促进搜索引擎优化(SEO)。安企CMS提供了强大且灵活的模板标签功能,其中 `archiveList` 标签就是实现这一目标的核心工具。本文将引导您如何利用 `archiveList` 标签

2025-11-07

如何在模板中获取并展示文章的缩略图或封面大图?

安企CMS在内容展示的灵活性方面一直备受好评,其中图片作为吸引用户和传递信息的核心元素,如何在模板中高效、准确地获取并展示文章的缩略图或封面大图,是许多网站运营者关注的焦点。这篇文章将详细解析安企CMS的模板机制,带你一步步掌握图片调用的技巧。 ## 安企CMS如何智能地处理图片 在安企CMS中,图片的管理和展示都设计得非常灵活高效。当你上传图片作为文章的缩略图或内容中的图片时

2025-11-07

如何自定义文章、产品、分类页面的模板布局?

在安企CMS中,灵活地自定义页面模板布局是提升网站个性化和用户体验的关键一步。无论是文章、产品详情页,还是分类列表页,安企CMS都提供了强大而直观的工具,让您无需深入编程,也能轻松打造独具风格的页面。 让我们一起探索如何在安企CMS中,将您的设计理念变为现实。 ### 安企CMS 模板基础概览 在开始自定义之旅前,了解一些安企CMS模板的基本约定会非常有帮助

2025-11-07

网站首页的TDK(Title、Keywords、Description)信息在哪里设置和显示?

网站首页的TDK(Title、Keywords、Description)信息,对于网站在搜索引擎中的表现至关重要。它不仅是搜索引擎理解网站核心内容的关键,也是用户在搜索结果页面决定是否点击网站的重要依据。安企CMS作为一款高效的内容管理系统,提供了直观便捷的TDK管理功能,让我们可以轻松优化网站首页在搜索引擎中的可见度。 ### 网站首页TDK的设置位置 在安企CMS中

2025-11-07

文章内容中的Markdown格式如何正确渲染为HTML并显示数学公式?

在使用AnQiCMS撰写文章时,我们常常希望内容不仅限于纯文本或简单的富文本,而是能够支持更丰富的格式,特别是Markdown语法带来的便捷性,以及在科学、技术内容中不可或缺的数学公式。这不仅能提升内容质量,也能为读者提供更好的阅读体验。 AnQiCMS深知内容多样性的重要,因此在系统中提供了对Markdown的支持。但要让这些Markdown内容,尤其是复杂的数学公式

2025-11-07

如何在文章详情页底部显示上一篇和下一篇文章的链接?

在安企CMS中,为文章详情页底部添加“上一篇”和“下一篇文章”的导航链接,不仅能优化用户在网站上的浏览路径,提升用户体验,还能有效增加页面间的跳转,对网站的内部链接结构和SEO表现都大有裨益。AnQiCMS强大的模板引擎和丰富的标签体系,让实现这一功能变得直观而高效。 ### 核心功能解析:上一篇与下一篇文章标签 AnQiCMS的模板系统提供了专门用于获取相邻文章的标签,分别是

2025-11-07

如何在AnQiCMS模板中显示网站的ICP备案号和版权信息?

在网站运营中,ICP备案号和版权信息是网站合法运营和维护自身权益不可或缺的组成部分。对于在中国大陆运营的网站而言,ICP备案号更是法律法规的明确要求,它不仅保障了网站的合法性,也提升了用户对网站的信任度。版权信息则明确了网站内容的归属,有助于保护原创作品不被侵犯。AnQiCMS作为一个功能全面的内容管理系统,充分考虑了这些实际需求,提供了便捷的设置和灵活的模板调用方式

2025-11-07

如何在页面中嵌入动态的联系方式信息,例如电话和地址?

在网站运营中,保持联系方式信息的准确性和一致性至关重要。无论是电话号码、地址还是社交媒体链接,这些信息经常需要更新,如果手动在每个页面进行修改,不仅耗时耗力,还容易出错。安企CMS(AnQiCMS)提供了非常便捷的方式,让您能够动态地管理和嵌入这些联系方式信息,实现“一处修改,全站更新”。 接下来,我们将详细探讨如何在安企CMS中实现这一目标。 ### 后台集中管理联系方式信息 首先

2025-11-07