如何使用AnQiCMS的`archiveList`标签获取指定内容模型下的文档列表?

📅 👁️ 56

AnQiCMS 内容管理:用 archiveList 标签精准获取文档列表的奥秘

作为一位资深的网站运营专家,我深知内容管理系统(CMS)的核心价值在于其内容的组织与展示能力。在 AnQiCMS 这款高效灵活的 Go 语言内容管理系统中,archiveList 标签无疑是内容展示环节的强大武器。它不仅仅是一个简单的内容调用标签,更是连接您网站内容模型与前端展现逻辑的关键桥梁。今天,我们就来深入探讨如何充分利用 archiveList 标签,精确高效地获取您在指定内容模型下的文档列表。

archiveList:AnQiCMS 内容展现的核心

AnQiCMS 在 v2.1.1 版本中进行了重要的标签重构,移除了原有的 articleproduct 等特定标签,统一引入了 archive 系列标签,并全面拥抱了内容模型(Content Model)的概念。这意味着所有文章、产品,乃至您自定义的任何内容类型,都统一归类为“文档(archive)”,并通过所属的内容模型进行区分和管理。archiveList 标签便是这一体系下的核心,它让您可以灵活地根据不同的内容模型、分类、属性等条件,在网站前端展示所需的文档列表。

它的强大之处在于,能够让您在不同的页面模板(如首页、列表页、专题页)上,根据业务需求动态地加载和展示内容,无论是新闻文章、产品介绍、活动信息还是案例展示,archiveList 都能游刃有余。

核心参数解析:精准定位您的内容

要使用 archiveList 标签,您需要将其包裹在一个 for 循环中,因为它的作用是返回一个文档集合。基本的结构是这样的:

{% archiveList archives with ... %}
    {% for item in archives %}
        {# 在这里展示每个文档的具体信息 #}
    {% empty %}
        {# 如果列表为空,则显示此内容 #}
    {% endfor %}
{% endarchiveList %}

其中,archives 是您为文档列表定义的变量名,item 则是循环中代表每个文档的变量。而 with 后面的参数,就是我们精准定位内容的关键。

  1. moduleId - 内容模型,文档之基石 moduleIdarchiveList 标签中至关重要的一个参数。它明确告诉系统您想要获取哪个内容模型下的文档。AnQiCMS 允许您自定义内容模型,例如您可以创建“文章模型”、“产品模型”、“案例模型”等。

    • 如何获取 moduleId 在 AnQiCMS 后台,进入“内容管理”->“内容模型”,您会看到每个模型都有一个唯一的 ID。例如,默认的“文章模型”通常 ID 为 1,“产品模型”通常 ID 为 2。在自定义模型时,您也可以记录下其对应的 ID。
    • 示例: 如果您想获取所有文章模型下的文档列表,您可以这样写:moduleId="1"
  2. categoryId - 精准定位内容的分类 当您的内容模型下有多个分类时,categoryId 参数可以帮助您进一步缩小范围,只获取指定分类或多个分类下的文档。

    • 示例: 获取分类 ID 为 5 的文章列表:categoryId="5" moduleId="1"
    • 多分类: 获取分类 ID 为 567 的文章列表:categoryId="5,6,7" moduleId="1"
    • 当前分类: 如果不指定 categoryIdarchiveList 默认会尝试读取当前页面的分类 ID。如果您希望它不自动读取当前分类,可以明确设置 categoryId="0"
    • 排除分类: 使用 excludeCategoryId="8" 可以排除 ID 为 8 的分类下的文档。
  3. type - 列表呈现的多样性 type 参数定义了您希望 archiveList 如何返回文档数据,它有几个常用值:

    • type="list" (默认值): 获取固定数量的文档列表,通常用于侧边栏推荐、首页最新内容等。
    • type="page": 用于需要分页显示的文档列表。当使用此类型时,您需要配合 pagination 标签来生成分页导航。
    • type="related": 用于获取与当前文档相关的文档列表。这通常在文档详情页中使用,AnQiCMS 会根据当前文档的分类、关键词等自动匹配相关内容。您还可以通过 like="keywords"like="relation" 进一步细化相关规则。
  4. orderlimit - 结果的排序与数量控制

    • order 控制文档的排序方式。常见的值有:
      • order="id desc":按文档 ID 倒序(最新发布)。
      • order="views desc":按浏览量倒序(最热门)。
      • order="sort desc":按后台自定义排序(默认)。
    • limit 控制获取文档的数量。
      • limit="10":获取 10 条文档。
      • limit="2,10":从第 2 条开始,获取 10 条文档(常用于跳过前面几条)。
  5. 其他常用参数:更精细的过滤

    • flag 根据文档的推荐属性(如头条 h、推荐 c、幻灯 f 等)进行筛选。例如 flag="c" 获取推荐文档。
    • q 搜索关键词。仅在 type="page" 时生效,可以用于在文档标题中进行模糊搜索。
    • siteId 在多站点管理模式下,指定获取哪个站点的数据。一般情况下无需填写。
    • child="false" 默认情况下,archiveList 会同时获取指定分类及其子分类下的文档。如果您只想获取当前分类下的文档,可以设置 child="false"
    • userIdparentIdcombineIdcombineFromId 用于更专业的筛选需求,例如按作者、父级文档、组合文档等。

实战演练:archiveList 的应用场景

现在,我们通过几个常见的应用场景来展示 archiveList 的强大功能。

场景一:在首页展示最新发布的文章列表

假设您的文章模型 ID 为 1

”`twig

<h2>最新文章</h2>
<ul>
    {% archiveList archives with moduleId="1" type="list" order="id desc" limit="8" %}
        {% for item in archives %}
        <li>

相关文章

`archiveFilters`标签能否与AnQiCMS的多语言支持结合,提供多语言的筛选条件?

作为一名资深的网站运营专家,我在AnQiCMS的内容管理和运营实践中积累了丰富的经验。今天,我们将深入探讨一个用户普遍关注的问题:AnQiCMS的`archiveFilters`标签能否与多语言支持结合,从而提供多语言的筛选条件? 要回答这个问题,我们需要理解AnQiCMS的多语言机制以及`archiveFilters`标签的工作原理。AnQiCMS作为一个企业级内容管理系统

2025-11-06

如果一个文档同时属于多个筛选参数值,`archiveFilters`标签会如何展示和处理?

## 安企CMS `archiveFilters` 标签:当一份文档同时满足多重筛选条件时,它将如何优雅呈现? 作为一名资深的网站运营专家,我深知内容的可发现性对于用户体验和SEO至关重要。安企CMS(AnQiCMS)在内容管理方面提供了许多强大而灵活的功能,其中`archiveFilters`标签无疑是构建高级筛选界面、提升内容导航效率的利器。当我们在一个复杂的网站上

2025-11-06

`archiveFilters`标签是否支持对自定义参数的排序方式进行控制?

作为一名资深的网站运营专家,我对安企CMS(AnQiCMS)的功能与内容运营策略有着深入的理解。今天,我们将围绕一个许多用户都可能关心的问题展开讨论:`archiveFilters`标签是否支持对自定义参数的排序方式进行控制? ### 深入解析 `archiveFilters` 的设计意图与功能边界 在安企CMS的模板体系中

2025-11-06

使用`archiveFilters`标签时,如何处理筛选结果为空时的用户提示?

## 优化AnQiCMS中`archiveFilters`标签的空结果提示,提升用户体验 在AnQiCMS的模板开发中,`archiveFilters`标签无疑是构建灵活内容筛选功能的强大工具。它允许我们根据预定义的文档参数,为用户提供动态的筛选选项,从而帮助用户快速定位他们感兴趣的内容。然而,无论是筛选选项本身为空,还是用户应用筛选条件后没有找到匹配的内容,这两种“空结果”状态如果处理不当

2025-11-06

`archiveList`标签如何根据多个分类ID来筛选和显示文档?

作为一位资深的网站运营专家,我深知内容管理系统的灵活性对于高效运营至关重要。安企CMS(AnQiCMS)凭借其强大的模板标签体系,为我们提供了极大的便利。今天,我们就来深入探讨一个非常实用的功能:如何利用`archiveList`标签,根据多个分类ID来筛选和显示文档,从而打造更具针对性和吸引力的内容模块。 ### 灵活筛选:AnQiCMS

2025-11-06

在`archiveList`中,如何排除特定分类的文档以精确内容展示?

作为一位资深的网站运营专家,我深知内容展示的精准性对于用户体验和网站运营效率的重要性。在内容管理系统中,我们经常会遇到这样的需求:在生成文章列表时,需要排除某些特定分类的文档,以确保内容的相关性和专注度。安企CMS(AnQiCMS)作为一款高效灵活的内容管理工具,为我们提供了非常方便的解决方案。今天,我们就来深入探讨如何在`archiveList`标签中,巧妙地利用参数来排除特定分类的文档

2025-11-06

如何利用`archiveList`标签获取具有特定推荐属性(如“头条”或“幻灯”)的文档?

作为一名资深的网站运营专家,我深知内容管理系统(CMS)的核心价值在于其灵活性和内容调度的能力。安企CMS(AnQiCMS)凭借其基于Go语言的高效架构和丰富的功能,为内容运营提供了强大的支撑。今天,我们就来深入探讨一个在内容运营中极为实用的场景:如何利用`archiveList`标签,精准地获取并展示具有特定推荐属性的文档,例如网站的“头条”新闻或用于“幻灯”轮播的重要内容。 --- ##

2025-11-06

`archiveList`标签如何实现按浏览量或发布时间对文档列表进行排序?

作为一位资深的网站运营专家,我深知内容管理系统(CMS)的核心价值在于其灵活性和内容呈现的效率。安企CMS(AnQiCMS)凭借其Go语言的高效架构和丰富的功能集,在这方面表现出色。今天,我们就来深入探讨一个在内容运营中极其常用的功能:如何利用`archiveList`标签实现按浏览量或发布时间对文档列表进行排序。 内容排序,看似简单,实则蕴含着深远的运营策略。无论是为了突出最新资讯

2025-11-06