AnQiCMS如何获取指定内容模型的分类列表并显示?

📅 👁️ 69

在AnQiCMS中,灵活地获取并展示指定内容模型的分类列表,是构建清晰网站结构和良好用户体验的关键。无论是产品展示、文章归档还是服务介绍,分类列表都扮演着重要的导航角色。AnQiCMS强大的模板标签系统,让这一过程变得直观且高效。

核心标签:categoryList的妙用

在AnQiCMS的模板设计中,我们主要依靠categoryList这个强大的标签来获取分类数据。它允许我们根据不同的需求,比如指定内容模型、父级分类、显示数量等,来筛选和组织要展示的分类信息。

categoryList标签的基本结构通常是这样的:

{% categoryList categories with moduleId="1" parentId="0" %}
    {# 在这里循环显示分类数据 #}
{% endcategoryList %}

其中,categories是我们为获取到的分类列表指定的一个变量名,你可以根据自己的习惯来命名。with后面跟着的是一系列参数,用于精细控制我们想要获取的分类数据。

精准定位:关键参数详解

要获取“指定内容模型”的分类列表,moduleId参数是不可或缺的。

  1. moduleId:指定内容模型 每个在AnQiCMS后台创建的内容模型(例如文章模型、产品模型、自定义模型)都有一个唯一的ID。通过将moduleId设置为对应模型的ID,我们可以确保只获取到该模型下的分类。比如,文章模型通常ID为1,产品模型ID为2。如果你想获取产品模型的分类,就可以写成moduleId="2"

  2. parentId:构建层级结构 分类往往不是扁平的,而是具有层级关系的。parentId参数就是用来控制获取哪个层级的分类的:

    • parentId="0":这会获取指定模型下的所有顶级分类。这是最常用的一种设置,通常用于主导航或侧边栏的主分类显示。
    • parentId=item.Id:当你在一个循环中获取了父级分类后,可以将当前循环到的父级分类的Id传递给子级的categoryList,从而获取该父级分类下的所有子分类。这对于构建多级下拉菜单或树形分类结构非常有用。
    • parentId="parent":这个参数在特定情况下,比如在某个分类的页面中,用于获取当前分类的同级(兄弟)分类。
  3. limit:控制显示数量 如果你只想显示一部分分类,例如首页只显示最热门的5个分类,可以使用limit="5"来限制返回的数量。

  4. siteId:多站点下的数据调用 在多站点管理的环境中,如果你想调用其他站点的数据,可以通过siteId参数来指定目标站点。对于大多数单站点用户而言,这个参数通常无需设置。

  5. all=true:获取所有分类 虽然本主题聚焦于“指定内容模型”,但了解all=true这个参数也很有帮助。它会获取所有内容模型下的所有分类。然而,为了避免数据混乱,通常建议结合moduleId来精确筛选。

循环展现:将数据呈现在页面上

获取到分类列表后,我们通常需要通过{% for %}循环标签来逐一展示它们。categoryList标签会返回一个包含多个分类对象的数组,每个对象都带有丰富的属性,供我们在模板中使用:

  • item.Title:分类的名称。
  • item.Link:分类的访问链接。
  • item.Description:分类的简介。
  • item.Thumbitem.Logo:分类的缩略图或大图地址,如果后台有设置的话。
  • item.Id:分类的唯一ID。
  • item.HasChildren:一个布尔值,表示该分类是否拥有子分类,这在构建动态导航时非常实用。
  • item.IsCurrent:表示当前分类是否是正在访问的页面对应的分类,可以用于高亮显示导航。

实战演练:构建分类列表

让我们通过几个实用的例子,看看如何在页面上获取并显示指定内容模型的分类列表。

场景一:显示“文章模型”下的所有顶级分类

假设你的文章模型ID是1,你需要在网站首页或文章列表页显示所有文章的顶级分类,作为主要导航。

<nav class="main-category-nav">
    <ul>
    {% categoryList categories with moduleId="1" parentId="0" %}
        {% for item in categories %}
            <li {% if item.IsCurrent %}class="active"{% endif %}>
                <a href="{{ item.Link }}">{{ item.Title }}</a>
            </li>
        {% endfor %}
    {% endcategoryList %}
    </ul>
</nav>

这段代码会获取文章模型下的所有一级分类,并为当前访问的分类添加active样式。

场景二:构建“产品模型”的多级导航菜单

如果你的网站有复杂的“产品模型”(ID为2),需要展示多级分类菜单,并且希望只有有子分类的菜单才展开。

<ul class="product-menu">
{% categoryList topCategories with moduleId="2" parentId="0" %}
    {% for topItem in topCategories %}
        <li {% if topItem.IsCurrent %}class="active"{% endif %}>
            <a href="{{ topItem.Link }}">{{ topItem.Title }}</a>
            {# 判断当前分类是否有子分类 #}
            {% if topItem.HasChildren %}
                <ul class="sub-menu">
                {% categoryList subCategories with parentId=topItem.Id %}
                    {% for subItem in subCategories %}
                        <li {% if subItem.IsCurrent %}class="active"{% endif %}>
                            <a href="{{ subItem.Link }}">{{ subItem.Title }}</a>
                        </li>
                    {% endfor %}
                {% endcategoryList %}
                </ul>
            {% endif %}
        </li>
    {% endfor %}
</ul>
{% endcategoryList %}

这里,我们首先获取顶级产品分类,然后在每个顶级分类的循环中,通过topItem.HasChildren判断是否有子分类。如果有,再嵌套一个categoryList标签,将父级分类的ID (topItem.Id) 传入parentId参数,以获取并显示其子分类。

**场景三

相关文章

如何使用AnQiCMS的面包屑导航标签展示当前页面路径?

在网站运营中,清晰的导航路径对于用户体验和搜索引擎优化(SEO)至关重要。面包屑导航(Breadcrumb Navigation)正是这样一种能显著提升网站可用性的辅助工具,它能够直观地告诉用户当前所在页面的位置,并提供快速返回上级页面的便捷入口。在AnQiCMS中,实现面包屑导航功能非常简单和灵活。 AnQiCMS 为我们提供了专门的面包屑导航标签 `breadcrumb`,通过它

2025-11-08

AnQiCMS模板如何构建和显示多级导航菜单?

网站导航是用户与网站互动的第一扇窗,清晰、直观的导航系统能极大地提升用户体验,帮助访客快速找到所需信息。AnQiCMS 提供了灵活强大的导航管理功能,无论是简单的单级菜单,还是复杂的二级、三级甚至更多层级的多级导航,都能轻松实现。接下来,我们将详细了解如何在 AnQiCMS 中构建和显示多级导航菜单。 ## 后端设置:构建导航的基石 在 AnQiCMS 中,多级导航的构建始于后台的精心配置

2025-11-08

AnQiCMS如何动态显示网站的首页TDK信息?

网站的TDK,即Title(标题)、Description(描述)和Keywords(关键词),是搜索引擎优化(SEO)的基础要素,它们直接影响着网站在搜索引擎结果页面(SERP)中的展示效果和用户的点击意愿。对于网站的“门面”——首页而言,精准且有吸引力的TDK信息更是至关重要。 在安企CMS (AnQiCMS) 中,管理和动态展示网站首页的TDK信息是一项直观且高效的任务

2025-11-08

如何在AnQiCMS前端页面中显示网站的联系电话和地址?

在网站运营中,清晰、便捷地展示网站的联系电话和地址,是建立用户信任、促进沟通交流的关键一步。对于使用AnQiCMS的朋友们来说,系统提供了非常灵活和直观的方式来管理和展示这些重要的联系信息。本文将详细介绍如何在AnQiCMS的前端页面中显示网站的联系电话和地址。 ### 第一步:在AnQiCMS后台录入联系方式 首先,我们需要确保网站的联系信息已经在后台正确录入。这是在前端显示这些信息的基础

2025-11-08

如何在AnQiCMS中显示当前分类的详细信息和描述?

在运营安企CMS(AnQiCMS)网站时,我们经常需要在分类页面上动态展示当前分类的详细信息和描述,比如分类的标题、简介、大图,甚至是自定义的字段。这不仅能帮助用户更好地理解当前页面的主题,也能有效提升页面的SEO表现。安企CMS为此提供了非常灵活且直观的模板标签,让这项工作变得轻松简单。 ### 认识 `categoryDetail` 标签

2025-11-08

AnQiCMS模板如何展示所有单页面的列表和链接?

在AnQiCMS中,想要在网站模板里展示所有单页面的列表和链接,其实是一个非常常见的需求,比如您可能想在网站底部放置一个“网站地图”或者“快速链接”区域,又或者需要在侧边栏列出所有的“服务项目”单页。AnQiCMS提供了一个简单而强大的模板标签,让您能够轻松实现这一点。 ### 理解单页面及其作用 在AnQiCMS中,单页面(Page)通常用于发布那些内容相对固定

2025-11-08

如何在AnQiCMS中获取并显示特定单页面的内容和标题?

在AnQiCMS中,单页面是网站结构中非常实用的一部分,它们通常用于展示“关于我们”、“联系方式”等静态内容。作为内容运营者,您可能会经常需要在网站的不同位置获取并展示这些特定单页面的内容和标题。AnQiCMS提供了直观且强大的模板标签,让这个过程变得十分简单。 ### 理解AnQiCMS中的单页面 AnQiCMS的设计理念之一就是内容的高度可定制性。单页面在后台的“页面资源”模块中进行管理

2025-11-08

AnQiCMS如何获取文章或产品的列表并支持分页显示?

在内容管理系统中,如何高效地展示文章或产品列表,并为用户提供流畅的分页体验,是网站运营者普遍关心的问题。AnQiCMS作为一个基于Go语言开发的系统,通过其灵活强大的模板标签系统,让这一切变得直观且高效。接下来,我们将探讨如何利用AnQiCMS的内置功能,轻松实现文章或产品的列表展示与分页功能。 ### 开启内容列表的旅程

2025-11-08