在构建和运营网站的过程中,导航菜单扮演着至关重要的角色。它不仅是用户探索网站内容的指引,更是搜索引擎理解网站结构的关键。安企CMS(AnQiCMS)深知这一点,因此提供了灵活且强大的导航菜单自定义功能,让我们可以轻松实现多层级内容的链接显示,从而优化用户体验并提升网站的整体效率。
接下来,我们将一起了解如何在安企CMS中自定义和管理网站导航菜单,并使其能够灵活地展示多层级的内容链接。
第一步:后台配置导航菜单
安企CMS的导航设置集中在后台管理界面,通过简洁直观的操作,我们可以定义不同位置的菜单,并为它们添加丰富的链接内容。
1. 访问导航设置
首先,登录您的安企CMS后台。在左侧的菜单栏中,找到并点击“后台设置”,然后选择“导航设置”。这里就是您管理所有网站导航的中心。
2. 管理导航类别
进入导航设置页面后,您会看到一个“导航类别管理”区域。安企CMS默认会提供一个“默认导航”类别,但这远远不够。想象一下,您的网站可能需要在页头显示主导航,页脚显示友情链接或法律声明,侧边栏显示热门分类,甚至不同语种的网站需要独立的导航。
安企CMS允许您根据实际需求创建多个导航类别。例如,您可以添加一个名为“页脚导航”或“侧边栏菜单”的新类别。每个类别都有一个唯一的ID,这在后续前端模板调用时会用到。有了不同的类别,您可以为网站的不同区域配置专属的导航菜单,实现更精细的布局管理。
3. 添加和编辑导航链接
现在,我们开始为选定的导航类别添加具体的链接。点击“导航链接设置”部分的“添加新导航”按钮,或点击现有导航旁边的“编辑”按钮。
设定链接层级:安企CMS支持最多两级导航链接,足以满足大多数网站的需求。当您添加新链接时,可以通过“上级导航”选项来决定其层级。如果选择“顶级导航”,它将显示为一级菜单项;如果选择已存在的一级导航,它就成为该一级导航下的二级子菜单。这种层级关系是实现多层级内容显示的基础。
填写链接显示信息:
- 显示名称:这是导航链接在前台页面上显示的文字,可以根据需要自由修改。
- 子标题名称:如果您的导航需要显示双标题(例如中英文对照),可以在这里添加副标题。
- 导航描述:为导航链接提供一段简短的介绍文字,在某些模板设计中可以用来显示提示信息。
选择链接类型:安企CMS提供了多种链接类型,满足不同内容连接的需求:
- 内置链接:包括网站首页、文章模型首页、产品模型首页以及其他自定义模型首页。选择这些链接类型,系统会自动生成对应的URL,非常方便。
- 分类页面链接:这是连接多层级内容的关键。您可以从已创建的文章分类、产品分类或单页面中选择。通过这种方式,您的导航可以直接指向某个分类的列表页或某个特定单页,让用户能快速找到所需内容。
- 外部链接:如果您需要链接到站内某个特定页面、外部网站或自定义的URL,可以选择此项并手动填写完整的链接地址。
调整显示顺序:每个导航链接都可以设置一个“显示顺序”值,数字越小,该链接在导航菜单中越靠前显示。虽然目前不支持拖拽排序,但通过数字调整,您依然可以灵活控制菜单项的排列顺序。
完成以上设置后,点击“确定”保存您的导航配置。
第二步:前端模板调用与显示
后台配置好导航菜单后,我们需要在网站的前端模板中调用并展示它们。安企CMS采用了类似Django模板引擎的语法,通过特定的标签来获取和渲染数据。
1. 核心标签 navList 的使用
在安企CMS的模板系统中,用于调用导航菜单的核心标签是 navList。它的基本用法如下:
{% navList navs with typeId=1 %}
{# 在这里循环输出导航项 #}
{% endnavList %}
navList 标签通常需要搭配 with typeId 参数,指定您在后台创建的导航类别ID。例如,typeId=1 表示调用“默认导航”类别。navs 是一个自定义的变量名称,用于接收获取到的导航数据,它是一个数组对象,您需要使用 for 循环来遍历其中的每一个导航项。
每个导航项(例如 item)都包含以下字段,可供您在模板中调用:
{{item.Title}}:导航链接的显示名称。{{item.Link}}:导航链接的URL地址。{{item.IsCurrent}}:一个布尔值,表示当前页面是否是此导航链接。可用于添加active样式。{{item.NavList}}:这是一个关键字段,如果当前导航项有子级导航,它会包含一个子导航列表,您可以通过再次循环来显示多层级结构。
2. 基础两层级导航显示
基于 navList 标签,我们可以轻松构建一个基础的两层级导航菜单。请注意,这里的代码片段仅为结构示例,您需要根据自己的CSS样式进行美化。
<nav class="main-navigation">
<ul>
{% navList navs with typeId=1 %} {# 假设1是您的主导航ID #}
{% for item in navs %}
<li {% if item.IsCurrent %}class="active"{% endif %}>
<a href="{{ item.Link }}">{{ item.Title }}</a>
{% if item.NavList %} {# 判断是否有二级导航 #}
<dl class="sub-menu">
{% for subItem in item.NavList %}
<dd {% if subItem.IsCurrent %}class="active"{% endif %}>
<a href="{{ subItem.Link }}">{{ subItem.Title }}</a>
</dd>
{% endfor %}
</dl>
{% endif %}
</li>
{% endfor %}
{% endnavList %}
</ul>
</nav>
这段代码会遍历所有一级导航项,如果某个一级导航项包含 NavList(即有子级导航),它会再循环输出所有的二级导航项,从而实现两层级的菜单结构。
3. 拓展:在导航中集成内容列表
安企CMS的强大之处在于,您不仅仅能链接到分类或页面,还能在导航菜单中动态地显示这些分类下的最新文章或产品列表。这对于“多层级内容的链接显示”主题来说,是一个非常实用的功能。
假设您希望在一个一级导航下,点击二级导航(某个分类)时,其下拉菜单不仅显示这个分类的子分类,还能直接列出该分类下的最新文档。这可以通过结合 archiveList 或 categoryList 标签实现。
示例1:在二级导航下显示分类的子分类和最新产品
”`twig
<ul>
{% navList productNav with typeId=2 %} {# 假设2是您的产品导航ID #}
{% for item in productNav %}
<li>
<a href="{{ item.Link }}">{{ item.Title }}</a>
{% if item.NavList %} {# 如果有一级子分类 #}
<ul class="nav-sub-category">
{% for innerCategory in item.NavList %}
<li>
<a href="{{ innerCategory.Link }}">{{ innerCategory.Title }}</a>
{% if innerCategory.PageId > 0 %} {# 如果这个二级导航项关联的是一个分类ID #}
{% categoryList subCategories with parentId=innerCategory.PageId %} {# 获取其下级分类 #}
{% if subCategories %}
<ul class="nav-third-level">
{% for thirdCategory in subCategories %}
<li><a href="{{ thirdCategory.Link }}">{{ thirdCategory.Title }}</a></li>
{% endfor %}
</ul>
{% endif %}
{% endcategoryList %}
{% archiveList products with type="list" categoryId=innerCategory.PageId limit="5" %} {# 获取该分类下的最新5篇产品 #}
{% if products %}
<ul class="nav-latest-products">
{% for product in products %}
<li>