如何获取并显示网站的所有分类列表?

📅 👁️ 69

在安企CMS中,网站分类列表是构建清晰导航、提升用户体验和优化搜索引擎排名的基石。无论是为文章、产品或其他内容模型建立分类体系,AnQiCMS 都提供了灵活而强大的工具来轻松获取并展示这些分类。

AnQiCMS 的核心理念之一就是让内容管理变得高效。它将内容组织成不同的“内容模型”,比如常见的文章模型和产品模型。每个内容模型都可以拥有独立的分类体系。理解这一点是获取分类列表的第一步,因为它决定了你想要展示的是哪类内容的分类。

核心利器:categoryList 标签详解

要在网站前端页面获取并展示分类列表,我们主要依赖 AnQiCMS 模板系统中的 categoryList 标签。这个标签设计得非常直观,让你能够根据不同的需求灵活地筛选和呈现分类数据。

categoryList 标签的基本用法通常是这样:

{% categoryList categories with 参数 %}
    {# 在这里循环展示分类数据 #}
{% endcategoryList %}

其中,categories 是你为这个分类列表指定的一个变量名,你可以在标签内部通过这个变量来访问和操作分类数据。参数部分则是用来精确控制你想要获取哪些分类的关键。

让我们来详细了解一下 categoryList 标签常用的参数:

  • moduleId:这是最重要的参数之一。它用来指定你想要获取哪个内容模型的分类。比如,网站默认的文章模型通常对应的 moduleId1,而产品模型可能对应 2。你需要根据你网站的实际内容模型来设置这个值。
  • parentId:这个参数用于控制分类的层级关系。
    • 如果你想获取所有顶级分类(也就是没有上级分类的分类),可以将 parentId 设置为 0
    • 如果你在某个分类页面,想获取当前分类的子分类,通常可以省略 parentId 参数,系统会自动识别当前分类并获取其直接子级。
    • 如果想获取当前分类的兄弟分类(即与当前分类同属一个上级分类的其它分类),可以将 parentId 设置为 parent
  • all:如果将其设置为 trueall=true,则会获取指定 moduleId 下的所有分类,不论层级。
  • limit:用于限制返回的分类数量。比如 limit="10" 会只显示 10 个分类。它还支持 offset 模式,如 limit="2,10" 表示从第 2 个分类开始,获取 10 个分类。
  • siteId:在多站点管理的环境下,如果你需要获取其他站点的分类数据,可以通过这个参数指定站点 ID。一般情况下无需设置。

categoryList 标签会返回一个分类对象的数据集合(或者称为数组)。在标签内部,你可以通过 for 循环来遍历这个集合,并访问每个分类的详细信息。每个分类对象都包含以下常用字段:

  • Id:分类的唯一标识符。
  • Title:分类的名称。
  • Link:分类页面的 URL 地址。
  • Description:分类的描述信息。
  • ParentId:上级分类的 ID。
  • Logo:分类的大图或主图地址。
  • Thumb:分类的缩略图地址。
  • HasChildren:一个布尔值(truefalse),指示该分类是否有子分类。
  • IsCurrent:一个布尔值,指示当前分类是否是当前页面所在的分类。
  • ArchiveCount:该分类下包含的文档(文章或产品等)数量。

实战演练:多种分类列表的展示方法

掌握了 categoryList 标签及其参数,我们就可以着手在网站上实现各种分类列表的展示了。

一、获取并展示所有顶级分类

这是最基础的用法,常用于网站主导航或首页分类入口。

<nav class="main-nav">
    <ul>
    {% categoryList topCategories with moduleId="1" parentId="0" %}
        {% for item in topCategories %}
        <li class="nav-item">
            <a href="{{ item.Link }}" title="{{ item.Title }}">{{ item.Title }}</a>
        </li>
        {% empty %}
        <li class="nav-item">当前内容模型下没有顶级分类。</li>
        {% endfor %}
    {% endcategoryList %}
    </ul>
</nav>

这段代码会获取 moduleId1(通常是文章模型)的所有顶级分类,并以无序列表的形式展示出来。如果没有任何分类,它会显示一条提示信息。

二、展示多级分类(嵌套结构)

对于层级较多的分类体系,我们通常需要以嵌套列表的形式来展示,以便用户更清晰地了解分类结构。AnQiCMS 允许你在 categoryList 内部再次调用 categoryList 来实现多级嵌套。

<div class="category-sidebar">
    {% categoryList level1Categories with moduleId="1" parentId="0" %}
    <ul class="level-1">
        {% for category1 in level1Categories %}
        <li>
            <a href="{{ category1.Link }}">{{ category1.Title }}</a>
            {% if category1.HasChildren %} {# 判断当前分类是否有子分类 #}
                {% categoryList level2Categories with parentId=category1.Id %} {# 获取当前分类的子分类 #}
                <ul class="level-2">
                    {% for category2 in level2Categories %}
                    <li>
                        <a href="{{ category2.Link }}">{{ category2.Title }}</a>
                        {% if category2.HasChildren %}
                            {% categoryList level3Categories with parentId=category2.Id %} {# 更多层级可以继续嵌套 #}
                            <ul class="level-3">
                                {% for category3 in level3Categories %}
                                <li><a href="{{ category3.Link }}">{{ category3.Title }}</a></li>
                                {% endfor %}
                            </ul>
                            {% endcategoryList %}
                        {% endif %}
                    </li>
                    {% endfor %}
                </ul>
                {% endcategoryList %}
            {% endif %}
        </li>
        {% endfor %}
    </ul>
    {% endcategoryList %}
</div>

通过检查 item.HasChildren 字段,我们能够智能地判断是否需要渲染下一级分类列表,从而构建出清晰的树形结构。

三、动态展示当前分类的子分类或兄弟分类

在分类详情页或内容详情页的侧边栏,你可能希望根据当前页面的分类来动态显示其子分类或同级分类。

<div class="related-categories">
    <h3>当前分类的子分类</h3>
    <ul>
    {% categoryList subCategories %} {# 默认获取当前页面的子分类 #}
        {% for item in subCategories %}
        <li><a href="{{ item.Link }}">{{ item.Title }}</a></li>
        {% empty %}
        <li>暂无子分类。</li>
        {% endfor %}
    {% endcategoryList %}
    </ul>

    <h3>同级分类</h3>
    <ul>
    {% categoryList siblingCategories with parentId="parent" %} {# 获取当前分类的兄弟分类 #}
        {% for item in siblingCategories %}
        <li {% if item.IsCurrent %}class="active"{% endif %}><a href="{{ item.Link }}">{{ item.Title }}</a></li>
        {% empty %}
        <li>暂无同级分类。</li>
        {% endfor %}
    {% endcategoryList %}
    </ul>
</div>

这里 parentId="parent" 的用法使得在分类页面中获取兄弟

相关文章

如何显示与当前文章相关的推荐文章列表?

在网站运营中,向读者推荐相关文章是提升用户体验、延长用户停留时间以及优化SEO的重要策略。当读者阅读完一篇文章后,如果能立即看到与当前内容高度相关的推荐,无疑会大大增加他们继续探索网站的兴趣。安企CMS深知这一需求,提供了强大而灵活的功能,帮助用户轻松实现这一目标。 ### AnqiCMS中的“相关文档”功能 安企CMS的核心优势之一在于其强大的内容管理和模板标签系统

2025-11-09

如何显示文章或产品的详细内容页面?

在安企CMS中,文章或产品详细内容页面的展示,是网站内容运营的核心环节。一个设计精良、信息完整的详情页,不仅能有效传递内容价值,更能提升用户体验和搜索引擎友好度。安企CMS提供了强大而灵活的工具集,让我们可以轻松实现这些目标。 ### 内容的基石:内容模型与模板文件 在安企CMS中,所有文章和产品都被统一视为“内容”(archive)。它们之所以能展现出不同的形态

2025-11-09

如何获取并显示特定分类下的所有文章?

在网站内容管理中,有效地组织和展示文章是提升用户体验和网站结构清晰度的关键。安企CMS提供了强大且灵活的模板标签功能,让您能够轻松地获取并显示特定分类下的所有文章。 ### 确保内容结构清晰:后台分类设置的基石 在开始模板层面的操作之前,我们首先要确保后台的内容结构是清晰、合理的。安企CMS的分类管理功能位于“内容管理”模块下,您可以在这里创建和管理各种文章分类,例如“公司新闻”

2025-11-09

如何显示网站的最新文章或产品列表?

在安企CMS中管理和展示网站内容,尤其是让访客看到最新发布文章或产品的动态,是提升用户体验和网站活力的重要一环。一个动态更新的网站不仅能吸引用户持续访问,对搜索引擎优化(SEO)也大有裨益。安企CMS提供了强大且灵活的标签系统,让我们能够轻松实现这一需求。 ### 核心工具:`archiveList` 标签 要在安企CMS网站的任何页面上显示最新文章或产品列表,最核心的工具就是

2025-11-09

如何在分类页面展示子分类,或当没有子分类时显示文章列表?

在网站运营中,分类页面的内容展示逻辑对用户体验和信息架构有着重要影响。我们常常会遇到这样的需求:当一个分类下有子分类时,优先展示这些子分类,方便用户进行更细致的导航;而如果该分类没有子分类,则直接展示该分类下的文章列表,避免页面内容为空或导航层级过深。安企CMS(AnQiCMS)提供了灵活的模板标签,可以轻松实现这种动态显示效果。 ### 理解分类页面的动态显示逻辑 要实现分类页面的智能展示

2025-11-09

如何显示网站的所有独立页面列表?

在安企CMS(AnQiCMS)中,网站的独立页面扮演着重要的角色,它们通常承载着“关于我们”、“联系方式”、“隐私政策”等核心信息,是构建网站信任度和完善信息架构不可或缺的一部分。本文将详细介绍如何在安企CMS中有效地管理和显示这些独立页面列表。 ### 理解安企CMS中的“独立页面” 在安企CMS的语境中,我们所说的“独立页面”对应着系统中的“单页面”功能。这些页面与文章

2025-11-09

如何获取并显示特定独立页面的详细内容?

安企CMS在内容管理方面提供了极大的灵活性,特别是对于那些需要展示独立、静态信息的页面,例如“关于我们”、“联系方式”或“服务条款”等。这些被称为“独立页面”或“单页面”,它们的内容通常相对固定,但又需要独立展示并具备搜索引擎友好的特性。那么,在安企CMS中,我们如何高效地获取并呈现在这些特定独立页面的详细内容呢?这通常涉及到在后台创建页面,以及在前端模板中调用其内容这两个主要步骤

2025-11-09

如何显示网站中所有已使用的标签(Tags)列表?

在网站运营中,标签(Tags)是内容组织和用户发现的重要工具。一个清晰、完整的标签列表不仅能帮助用户快速找到感兴趣的内容,还能提升网站的SEO表现,引导搜索引擎更好地理解网站内容结构。安企CMS提供了强大且灵活的标签管理和展示功能,让您可以轻松地将网站中所有已使用的标签列表显示出来。 ### 全站标签列表的展示方式 若您希望在网站上专门设立一个页面,集中展示所有已使用的标签

2025-11-09