在 AnQiCMS 中获取并展示指定分类下的文章列表,是网站内容运营中非常常见的需求。无论您是想在首页展示特定分类的最新文章,还是在某个独立页面聚合某个专题的所有内容,AnQiCMS 强大的模板标签系统都能帮助您轻松实现。

AnQiCMS 的模板引擎语法与 Django 类似,通过简洁明了的标签和变量,您可以直接在 HTML 模板中调用后端数据。本文将引导您如何利用 archiveList 标签,准确高效地实现文章列表的展示。

第一步:明确您要展示哪个分类的文章

首先,您需要知道目标分类的标识信息。这通常有两种方式:

  1. 分类 ID: 这是最直接的方式。登录您的 AnQiCMS 后台,进入“内容管理” -> “文档分类”。在这里,您可以找到所有已创建的分类及其对应的数字 ID。例如,“公司新闻”分类可能对应 ID 1,“行业动态”可能对应 ID 2。记下您需要使用的分类 ID。
  2. 分类 URL 别名 (token): 如果您的分类设置了自定义 URL 别名,您也可以使用这个别名来指定分类。这在某些动态场景下会非常方便。

第二步:使用 archiveList 标签获取文章数据

archiveList 是 AnQiCMS 提供的一个强大模板标签,专门用于获取文章列表。它的基本结构是 {% archiveList 变量名 with 参数列表 %},并以 {% endarchiveList %} 结束。在 with 关键字后面,您可以传入一系列参数来精确控制要获取哪些文章。

以下是获取指定分类文章列表时常用的参数:

  • categoryId 这是关键参数,用于指定要获取哪个分类下的文章。您可以传入单个分类 ID,例如 categoryId="1";如果需要获取多个分类的文章,可以使用逗号分隔,例如 categoryId="1,3,5"
  • moduleId AnQiCMS 支持多种内容模型(如文章、产品等)。moduleId 用于指定要获取哪种模型的文章。通常,文章模型的 ID 为 1,产品模型的 ID 为 2。如果您不确定,可以在后台的“内容管理” -> “内容模型”中查看。
  • type 这个参数决定了列表的类型。
    • type="list":用于获取固定数量的文章列表,不带分页功能。常用于首页、侧边栏等位置。
    • type="page":用于生成带有分页功能的文章列表。当您需要在分类列表页展示大量文章时,会用到此类型,并结合 pagination 标签使用。
  • limit 配合 type="list" 使用,用于限制显示的文章数量。例如,limit="5" 将只显示最新的 5 篇文章。如果您想从第 N 篇文章开始显示,可以这样设置:limit="2,5"(表示从第 2 篇文章开始,显示 5 篇)。
  • order 定义文章的排序方式。常见的值包括:
    • order="id desc":按文章 ID 降序排列(通常意味着最新发布的文章在前)。
    • order="views desc":按文章浏览量降序排列(热门文章在前)。
    • order="sort desc":按后台设置的排序值降序排列(可以手动调整文章顺序)。
  • child 是否包含子分类的文章。child="true"(默认值)会包含指定分类及其所有子分类的文章;child="false" 则只包含指定分类本身的直接文章。
  • flag 根据文章的推荐属性筛选。例如,flag="c" 获取推荐文章,flag="h" 获取头条文章。

第三步:循环遍历并展示文章详情

archiveList 标签会返回一个文章对象数组,您需要使用 {% for ... %} 循环来遍历这些文章,并逐一显示它们的详细信息。

在循环内部,每个文章对象通常会有一个默认的变量名(例如在示例中,如果您定义为 articles,那么循环体内部的变量就是 article)。这个 article 变量包含了文章的各种字段,您可以直接通过 {{ article.字段名 }} 的形式进行调用。

常用的文章字段包括:

  • {{ article.Title }}:文章标题
  • {{ article.Link }}:文章链接
  • {{ article.Description }}:文章简介
  • {{ article.Thumb }}:文章缩略图地址
  • {{ article.Logo }}:文章封面首图地址
  • {{ article.CreatedTime }}:文章发布时间(这是一个时间戳,通常需要用 stampToDate 标签进行格式化)
  • {{ article.Views }}:文章浏览量
  • {{ article.CategoryId }}:文章所属分类 ID

**时间格式化小贴士