AnQiCMS 内容管理:用 archiveList 标签精准获取文档列表的奥秘
作为一位资深的网站运营专家,我深知内容管理系统(CMS)的核心价值在于其内容的组织与展示能力。在 AnQiCMS 这款高效灵活的 Go 语言内容管理系统中,archiveList 标签无疑是内容展示环节的强大武器。它不仅仅是一个简单的内容调用标签,更是连接您网站内容模型与前端展现逻辑的关键桥梁。今天,我们就来深入探讨如何充分利用 archiveList 标签,精确高效地获取您在指定内容模型下的文档列表。
archiveList:AnQiCMS 内容展现的核心
AnQiCMS 在 v2.1.1 版本中进行了重要的标签重构,移除了原有的 article 和 product 等特定标签,统一引入了 archive 系列标签,并全面拥抱了内容模型(Content Model)的概念。这意味着所有文章、产品,乃至您自定义的任何内容类型,都统一归类为“文档(archive)”,并通过所属的内容模型进行区分和管理。archiveList 标签便是这一体系下的核心,它让您可以灵活地根据不同的内容模型、分类、属性等条件,在网站前端展示所需的文档列表。
它的强大之处在于,能够让您在不同的页面模板(如首页、列表页、专题页)上,根据业务需求动态地加载和展示内容,无论是新闻文章、产品介绍、活动信息还是案例展示,archiveList 都能游刃有余。
核心参数解析:精准定位您的内容
要使用 archiveList 标签,您需要将其包裹在一个 for 循环中,因为它的作用是返回一个文档集合。基本的结构是这样的:
{% archiveList archives with ... %}
{% for item in archives %}
{# 在这里展示每个文档的具体信息 #}
{% empty %}
{# 如果列表为空,则显示此内容 #}
{% endfor %}
{% endarchiveList %}
其中,archives 是您为文档列表定义的变量名,item 则是循环中代表每个文档的变量。而 with 后面的参数,就是我们精准定位内容的关键。
moduleId- 内容模型,文档之基石moduleId是archiveList标签中至关重要的一个参数。它明确告诉系统您想要获取哪个内容模型下的文档。AnQiCMS 允许您自定义内容模型,例如您可以创建“文章模型”、“产品模型”、“案例模型”等。- 如何获取
moduleId? 在 AnQiCMS 后台,进入“内容管理”->“内容模型”,您会看到每个模型都有一个唯一的 ID。例如,默认的“文章模型”通常 ID 为1,“产品模型”通常 ID 为2。在自定义模型时,您也可以记录下其对应的 ID。 - 示例: 如果您想获取所有文章模型下的文档列表,您可以这样写:
moduleId="1"。
- 如何获取
categoryId- 精准定位内容的分类 当您的内容模型下有多个分类时,categoryId参数可以帮助您进一步缩小范围,只获取指定分类或多个分类下的文档。- 示例: 获取分类 ID 为
5的文章列表:categoryId="5" moduleId="1"。 - 多分类: 获取分类 ID 为
5、6、7的文章列表:categoryId="5,6,7" moduleId="1"。 - 当前分类: 如果不指定
categoryId,archiveList默认会尝试读取当前页面的分类 ID。如果您希望它不自动读取当前分类,可以明确设置categoryId="0"。 - 排除分类: 使用
excludeCategoryId="8"可以排除 ID 为8的分类下的文档。
- 示例: 获取分类 ID 为
type- 列表呈现的多样性type参数定义了您希望archiveList如何返回文档数据,它有几个常用值:type="list"(默认值): 获取固定数量的文档列表,通常用于侧边栏推荐、首页最新内容等。type="page": 用于需要分页显示的文档列表。当使用此类型时,您需要配合pagination标签来生成分页导航。type="related": 用于获取与当前文档相关的文档列表。这通常在文档详情页中使用,AnQiCMS 会根据当前文档的分类、关键词等自动匹配相关内容。您还可以通过like="keywords"或like="relation"进一步细化相关规则。
order和limit- 结果的排序与数量控制order: 控制文档的排序方式。常见的值有:order="id desc":按文档 ID 倒序(最新发布)。order="views desc":按浏览量倒序(最热门)。order="sort desc":按后台自定义排序(默认)。
limit: 控制获取文档的数量。limit="10":获取 10 条文档。limit="2,10":从第 2 条开始,获取 10 条文档(常用于跳过前面几条)。
其他常用参数:更精细的过滤
flag: 根据文档的推荐属性(如头条h、推荐c、幻灯f等)进行筛选。例如flag="c"获取推荐文档。q: 搜索关键词。仅在type="page"时生效,可以用于在文档标题中进行模糊搜索。siteId: 在多站点管理模式下,指定获取哪个站点的数据。一般情况下无需填写。child="false": 默认情况下,archiveList会同时获取指定分类及其子分类下的文档。如果您只想获取当前分类下的文档,可以设置child="false"。userId、parentId、combineId、combineFromId: 用于更专业的筛选需求,例如按作者、父级文档、组合文档等。
实战演练: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>