如何精确控制网站导航菜单的显示内容、层级和当前选中状态?

📅 👁️ 85

网站导航,就像一个网站的指路牌,清晰、直观的导航系统能极大地提升用户体验,帮助访客快速找到所需信息。同时,对搜索引擎来说,良好的导航结构也是理解网站内容层级、进行有效抓取和排名的关键。在安企CMS中,我们可以灵活而精确地控制网站导航的显示内容、层级和当前选中状态,让导航既美观又实用。

核心理念:后台配置与前端模板渲染分离

安企CMS在处理网站导航时,遵循着“后台配置数据,前端模板渲染展示”的原则。这意味着,您在后台设置好导航的结构、链接和属性,而具体的样式、布局和互动逻辑则由前端模板文件来决定。这种分离的设计,让您既能方便地管理导航内容,又能拥有极高的自由度来定制导航的外观。

第一步:在后台精细化设置导航菜单

所有导航菜单的显示内容、链接类型和大致层级,都源于安企CMS后台的“网站导航设置”功能。

  1. 管理导航类别:不止一个主菜单 在“网站导航设置”中,您会发现默认的“默认导航”类别。但您的网站可能不只有顶部主导航,还可能需要页脚导航、侧边栏导航、甚至是登录后用户中心导航。安企CMS支持自定义创建多个导航类别,例如,您可以添加一个名为“页脚导航”的新类别。这样,不同的导航区域就能独立管理,互不干扰。

  2. 添加与编辑导航链接:控制显示内容与层级 进入具体的导航类别后,您就可以开始添加或编辑导航链接了。每个导航链接都可以细致地设定多项内容:

    • 显示名称: 这是导航在前台展示的文字,您可以灵活更改,不一定非要和链接指向的页面名称完全一致。
    • 子标题名称: 如果您的导航需要同时显示中文和英文等双标题,可以在这里添加对应文字,供模板调用。
    • 导航描述: 为导航项添加一段简要介绍文字,同样可供模板在特定布局下调用。
    • 链接类型: 安企CMS提供了三种灵活的链接类型:
      • 内置链接: 快速指向网站首页、文章模型首页、产品模型首页或其他自定义模型首页,无需手动填写URL。
      • 分类页面链接: 直接选择已创建的文章分类、产品分类或单个独立页面作为导航链接,系统会自动生成正确路径。
      • 外部链接: 允许您手动输入任意URL,无论是站内特定路径还是站外链接,都能轻松添加。
    • 层级关系: 安企CMS原生地支持两级导航链接。您可以通过“上级导航”选项,将当前链接设置为顶级导航,或指定其隶属于某个已存在的顶级导航,从而构建清晰的二级菜单结构。
    • 显示顺序: 通过设置数字大小来调整导航项的排列位置,数字越小越靠前,方便您对菜单进行精确排序。

第二步:利用模板标签灵活展现导航

后台配置完成后,接下来就是通过模板标签将这些导航数据呈现在网站前端。安企CMS的模板引擎功能强大,这里主要会用到 navList 标签。

  1. navList 标签的基本用法 navList 是获取导航列表的核心标签。它会根据您在后台设置的导航类别ID (typeId),获取所有相关的导航链接数据。

    {% navList navs %}
    <ul>
        {% for item in navs %}
        <li>
            <a href="{{ item.Link }}">{{item.Title}}</a>
        </li>
        {% endfor %}
    </ul>
    {% endnavList %}
    

    这段代码会遍历 navs 变量,为每个顶级导航项生成一个列表项和链接。item.Link 会自动输出正确的导航链接,item.Title 则显示您在后台设置的导航名称。

  2. 实现二级导航菜单 navList 标签返回的每个 item 对象中,如果该导航项有子导航,会包含一个 NavList 属性。您可以嵌套一个 for 循环来展现二级菜单:

    {% navList navs %}
    <ul>
        {% for item in navs %}
        <li>
            <a href="{{ item.Link }}">{{item.Title}}</a>
            {% if item.NavList %} {# 判断是否有二级导航 #}
            <dl>
                {% for inner in item.NavList %}
                    <dd><a href="{{ inner.Link }}">{{inner.Title}}</a></dd>
                {% endfor %}
            </dl>
            {% endif %}
        </li>
        {% endfor %}
    </ul>
    {% endnavList %}
    

    这样,一个结构清晰的两级导航菜单就通过简单的嵌套循环呈现出来了。

  3. 导航中的动态内容:更高级的层级展示 有时,您可能希望在二级导航下,直接展示某个分类下的文章列表,或者该分类的子分类,以实现更深层的内容引导。安企CMS允许您在导航模板中结合 archiveListcategoryList 等标签实现:

    {% navList navList with typeId=1 %}
    <ul>
        {% 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 #}
                        {% categoryList subCategories with parentId=inner.PageId %} {# 获取该分类的子分类 #}
                        {% if subCategories %}
                        <ul>
                            {% for subCat in subCategories %}
                            <li><a href="{{ subCat.Link }}">{{subCat.Title}}</a></li>
                            {% endfor %}
                        </ul>
                        {% endif %}
                        {% endcategoryList %}
                        {# 或者,在这里调用 archiveList 来显示文章 #}
                        {% archiveList articles with type="list" categoryId=inner.PageId limit="5" %}
                        {% if articles %}
                        <ul>
                            {% for article in articles %}
                            <li><a href="{{ article.Link }}">{{article.Title}}</a></li>
                            {% endfor %}
                        </ul>
                        {% endif %}
                        {% endarchiveList %}
                    {% endif %}
                </li>
                {% endfor %}
            </ul>
            {% endif %}
        </li>
        {% endfor %}
    </ul>
    {% endnavList %}
    

    通过这种方式,您可以让导航不仅仅是死板的链接,而是能够动态展示网站内容的入口,理论上可以构建出逻辑上更深层级的导航内容。

  4. 当前选中状态的智能识别 安企CMS的 navList 标签自带一个非常实用的 IsCurrent 属性。当某个导航项是当前访问页面的链接时,IsCurrent 的值为 true。您可以利用这个属性来添加CSS类,从而高亮显示当前选中的导航项:

    {% navList navs %}
    <ul>
        {% for item in navs %}
        <li class="{% if item.IsCurrent %}active{% endif %}"> {# 根据 IsCurrent 属性添加 active 类 #}
            <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 %}
    

    只要您的CSS文件中定义了 .active 类的样式(比如背景色、文字颜色),当前页面对应的导航项就会自动突出显示,无需手动维护。

高级技巧与考量

  • 多站点与多语言导航: 如果您的安企CMS部署了多站点或多语言功能,每个站点/语言都可以拥有独立的导航设置。在 navList 标签中,通过 siteId 参数可以指定获取特定站点的数据,实现完全独立的导航结构和内容。
  • 自定义导航样式: 导航的视觉呈现完全取决于您的前端模板文件(.html)和CSS样式(.css)。您可以修改 <li><a> 等标签的结构,添加自定义类名,并编写相应的CSS代码,打造独一无二的导航风格。
  • 伪静态规则与导航链接: 确保您在后台“伪静态规则”中设置的URL结构,与导航链接的生成逻辑保持一致。例如,如果文章详情页使用了 /article-{id}.html 的命名模式,那么通过“分类页面链接”或“内置链接”生成的导航URL也会遵循这个规则,保证网站链接的统一性和SEO友好性。

安企CMS通过其后台灵活的配置和前端强大的模板标签,让您能够精确控制网站导航的每一个细节

相关文章

如何显示网站全局的TDK(Title, Keywords, Description)信息?

## 优化网站门面:安企CMS中TDK信息的展示与应用 在网站运营中,TDK(Title, Keywords, Description)是搜索引擎优化(SEO)不可或缺的基础元素。它们就像网站的“名片”,直接告诉搜索引擎您的页面主题、核心内容以及最重要的关键词,从而影响网站在搜索结果中的排名和点击率。一个精心设置的TDK,能让您的网站在众多竞争者中脱颖而出

2025-11-08

如何在分类页面显示该分类下的文章列表,并同时显示分类的Logo或Banner图?

在安企CMS中管理和展示分类内容,是构建一个结构清晰、用户友好的网站的关键一步。分类页面不仅能帮助用户快速找到感兴趣的内容,同时配合精心设计的视觉元素,如Logo或Banner图,还能有效提升品牌形象和用户体验。这篇文章将详细指导您如何在安企CMS的分类页面实现这些功能。 --- ### 一、理解分类页面的构成与模板设置 在安企CMS中,每个分类都对应一个可以展示其内容的页面

2025-11-08

如何实现文章列表、产品列表或Tag列表的分页显示功能?

管理网站内容,尤其是当内容量日渐庞大时,如何让访客既能快速找到所需信息,又能保持页面加载流畅,是一个重要的课题。安企CMS(AnQiCMS)在设计之初就充分考虑了这一点,它提供了一套直观而强大的分页功能,让您的文章列表、产品列表乃至Tag列表都能实现优雅的分页显示。 我们都知道,当一个分类下的文章或产品数量很多时,将它们全部显示在一个页面上不仅会拖慢加载速度,还会让用户在海量信息中感到迷茫

2025-11-08

如何根据文章的Tag(标签)来显示相关联的文章列表?

在内容管理系统中,有效利用标签(Tag)来组织和关联文章,是提升用户体验和内容发现效率的关键一环。AnQiCMS 提供了强大而灵活的标签功能,让我们可以轻松地根据文章的标签来展示相关联的内容列表。 ## 理解AnQiCMS的标签功能 AnQiCMS 的标签功能(Tag)不仅仅是为文章添加关键词,它更像是一种跨分类、跨模型的内容关联方式。通过为文章添加标签,我们可以将那些主题相近

2025-11-08

如何在网站页面中添加并显示动态的面包屑导航?

在现代网站设计中,面包屑导航(Breadcrumb Navigation)扮演着至关重要的角色。它就像用户在网站上的“足迹”,清晰地显示当前页面在整个网站结构中的位置,让访客一目了然,从而大大提升网站的可用性和用户体验。同时,合理设置的面包屑导航也有助于搜索引擎更好地理解网站结构,对SEO优化非常有益。 对于使用AnQiCMS来管理网站的用户来说

2025-11-08

如何创建和显示自定义的单页面(如关于我们、联系方式)内容?

在网站运营中,“关于我们”、“联系方式”、“隐私政策”这类内容通常以独立页面的形式展示,它们内容相对固定,且在网站结构中扮演着重要角色。安企CMS(AnQiCMS)为创建和管理这些自定义单页面提供了直观而强大的功能,让您无需编写代码即可轻松发布和更新。 ### 创建自定义单页面内容 在安企CMS中创建单页面是一个简单而直接的过程。首先,您需要登录后台管理界面。 1. **进入页面管理

2025-11-08

如何获取并显示网站后台配置的联系方式(如电话、地址、社交媒体链接)?

在网站运营中,清晰、便捷地展示企业的联系方式是至关重要的,它不仅提升了客户信任度,也是用户获取服务、进行咨询的直接途径。安企CMS(AnQiCMS)作为一个功能强大的内容管理系统,提供了直观的后台配置选项和灵活的模板调用机制,让您能够轻松管理并展示这些信息。 接下来,我们将一同探索如何在AnQiCMS中配置并显示您的网站联系方式,包括电话、地址、社交媒体链接等。 --- ## 第一部分

2025-11-08

如何在模板中获取并显示当前的年份,用于版权信息等动态内容?

在运营网站时,我们经常需要在页脚的版权声明中显示当前的年份,例如“© 2023 All Rights Reserved.”。随着时间推移,这个年份需要每年更新,如果手动修改,无疑是一项重复且容易遗漏的工作。安企CMS充分考虑了这种常见需求,提供了一个非常直观且强大的模板标签,让您轻松实现年份的动态显示,让您的网站版权信息永远保持最新。 ###

2025-11-08