AnQiCMS模板中如何使用`archiveList`标签来灵活显示文档列表?

📅 👁️ 71

在安企CMS中,当我们需要在网站上动态展示文章、产品或其他文档列表时,archiveList 标签是我们不可或缺的核心工具。它提供了高度的灵活性和强大的功能,无论您是想展示最新内容、热门文章,还是特定分类下的产品,甚至是根据关键词搜索或自定义筛选条件来生成列表,archiveList 都能轻松应对。

archiveList 的核心功能与基本用法

archiveList 标签主要用于从数据库中查询并展示符合特定条件的文档集合。它的基本使用结构通常包括两个部分:archiveList 标签本身用于定义查询条件,以及一个 for 循环用于遍历查询到的每一条文档数据。

一个典型的用法示例如下:

{% archiveList archives with type="list" limit="10" %}
    {% for item in archives %}
        <li><a href="{{ item.Link }}">{{ item.Title }}</a></li>
    {% endfor %}
{% endarchiveList %}

在这个例子中:

  • archiveList 是标签名。
  • archives 是我们自定义的一个变量名,用于存储查询到的文档列表数据。您可以根据自己的喜好将其命名为 articlesproducts 等。
  • with type="list" limit="10" 是用于指定查询条件的参数。type="list" 表示我们希望获取一个简单的列表,而不是分页列表或相关文档列表;limit="10" 则限制了显示文档的数量为10条。
  • {% for item in archives %} 语句用来遍历 archives 变量中的每一条文档数据。在循环体内,item 变量代表当前正在处理的文档。
  • {{ item.Link }}{{ item.Title }} 则分别用于输出当前文档的链接和标题。

灵活控制文档的获取与展示

archiveList 标签提供了丰富的参数,让我们可以精确地控制要获取哪些文档以及如何排序它们。

  1. 内容定位:指定从何处获取文档

    • moduleId: 如果您的网站有多种内容模型(如文章、产品),可以通过 moduleId="1"(假设文章模型的ID是1)来指定只获取文章模型的文档。
    • categoryId: 想展示某个特定分类下的文档?使用 categoryId="分类ID"。如果需要展示多个分类的文档,可以用逗号分隔多个ID,例如 categoryId="1,2,3"。值得注意的是,如果您不指定 categoryId,它会尝试自动读取当前页面的分类ID,如果您想禁用这个自动行为,可以明确设置为 categoryId="0"
    • excludeCategoryId: 有时我们可能需要排除某些分类的文档,此时可以使用 excludeCategoryId="要排除的分类ID"
    • flag, excludeFlag: 安企CMS支持为文档设置多种推荐属性,如 头条[h]推荐[c]幻灯[f] 等。通过 flag="c",您可以轻松调取所有被标记为“推荐”的文档。同样,excludeFlag 参数可以帮助您排除特定属性的文档。
    • child: 默认情况下,categoryId 会包含其子分类下的文档。如果您只想获取指定分类本身的文档,而不包括其子分类,可以设置 child=false
    • userId, parentId: 针对特定作者发布的文档或具有父子关系的文档,这两个参数也提供了精确的定位功能。
    • siteId: 对于多站点管理的场景,您可以通过 siteId 参数指定要获取哪个站点的数据,实现跨站点的内容调用。
  2. 展示顺序与数量:如何排序和限制条数

    • order: 文档的排序方式非常关键。您可以根据 id 降序 (id desc) 获取最新发布的文档,或者按 views 降序 (views desc) 展示热门内容。如果您在后台设置了自定义排序,order="sort desc" 会按您的设定显示。
    • limit: 这个参数控制了列表显示的文档数量,例如 limit="10" 显示10条。它还支持 offset,limit 的形式,比如 limit="2,10" 表示从第2条文档开始,获取10条数据。
  3. 列表类型:listpagerelated

    • type="list": 这是最简单的列表模式,按照 limit 参数指定数量,直接显示文档。
    • type="page": 当您需要为文档列表添加分页功能时,就应该使用 type="page"。此时,您还需要结合安企CMS提供的 pagination 标签来构建分页导航,实现例如“上一页”、“下一页”以及页码跳转等功能。
    • type="related": 用于在文档详情页获取相关文档。它会智能地根据当前文档的分类或其他元数据来推荐内容。您还可以通过 like="keywords" 让它根据关键词匹配相关文档,或者 like="relation" 只显示后台手动设置的相关文档。
  4. 高级用法:搜索与自定义筛选

    • q: 当 type="page" 时,q 参数可以用于实现搜索功能。您可以在 archiveList 标签中直接指定 q="搜索关键词",或者更灵活地,让它自动读取 URL 中的 q 查询参数,从而实现用户在搜索框中输入关键词后的动态搜索结果展示。
    • 筛选参数: 如果您在后台内容模型中为文档定义了额外的可筛选字段(例如房产网站的“户型”、“区域”等),这些筛选条件可以通过 URL 的查询参数传递给 archiveList。结合 archiveFilters 标签,您可以构建出强大的筛选导航。
    • combineIdcombineFromId: 这是一组非常独特且强大的参数,适用于需要将两篇文档组合展示的场景,例如“从城市A到城市B的旅游线路”。它们允许您在列表中动态地将另一篇文档的内容附加到当前文档上,并在链接中体现这种组合关系。

循环体内可用的文档数据

for item in archives 循环中,item 对象包含了当前文档的丰富信息,您可以根据需求调用:

  • 基本信息: {{ item.Id }} (ID), {{ item.Title }} (标题), {{ item.Link }} (链接), {{ item.Description }} (描述), {{ item.Views }} (浏览量) 等。
  • 时间信息: {{ stampToDate(item.CreatedTime, "2006-01-02") }} (发布时间,需要 stampToDate 格式化)。
  • 图片信息: {{ item.Logo }} (封面首图), {{ item.Thumb }} (封面缩略图)。如果文档包含多张图,{{ item.Images }} 会返回一个图片URL数组,您可以在循环中再次遍历展示。
  • 分类信息: {{ item.CategoryId }} (分类ID)。要获取分类名称或链接,通常需要结合 categoryDetail 标签,如 {% categoryDetail with name="Title" id=item.CategoryId %}
  • **自定义字段

相关文章

如何为特定的文档、分类或单页面设置独立的模板来控制其显示样式?

在 AnQiCMS 中,为特定的文档、分类或单页面设置独立的模板,是实现网站内容个性化展示和提升用户体验的关键功能。这不仅能让网站设计更具灵活性,也能针对不同类型的内容进行精准的样式控制,从而更好地满足品牌定位和内容运营策略。 ### 理解 AnQiCMS 的模板机制 AnQiCMS 提供了两种主要方式来应用自定义模板:一种是系统根据文件命名规则自动识别并加载模板

2025-11-08

AnQiCMS的模板目录结构是怎样的,如何组织模板文件以实现高效显示?

在AnQiCMS中构建和管理网站模板,首先要理解其独特的目录结构与文件组织方式。这不仅关乎网站的视觉呈现,更是影响网站性能、可维护性与未来扩展性的重要基石。一个清晰、合理的模板组织策略,能让内容运营和前端开发工作都事半功倍。 ### AnQiCMS模板体系概览 AnQiCMS采用类似Django模板引擎的语法,以`.html`作为模板文件后缀,这使得熟悉此类模板语言的开发者能够快速上手

2025-11-08

制作AnQiCMS模板时,有哪些基本约定需遵循以确保内容正确显示?

在AnQiCMS中构建网站模板,如同为网站设计一套精美的外观和实用的功能骨架。要确保您精心设计的内容能够准确无误地展现在访客面前,遵循一些基本的模板制作约定至关重要。这些约定不仅能帮助您高效地完成模板开发,更能保证网站的稳定运行和未来维护的便捷性。 ### 一、模板文件的组织与编码规范 首先,AnQiCMS对模板文件的**存放位置和命名**有着明确的要求。所有的模板文件都应以`

2025-11-08

AnQiCMS如何通过静态缓存提升网站内容的加载速度和用户显示体验?

在当今快节奏的数字世界里,网站加载速度直接影响着用户对网站的第一印象和停留时间。一个响应迅速的网站不仅能提升用户体验,更是搜索引擎优化(SEO)的关键因素之一。AnQiCMS 深刻理解这一点,并内置了强大的静态缓存机制,旨在从根本上提升您网站的性能和用户感受。 ### 理解静态缓存:网站加速的秘密武器 想象一下,您的网站是一间忙碌的咖啡馆。每次有顾客点咖啡(访问一个页面)

2025-11-08

`archiveDetail`标签如何用于获取和展示单个文档的详细内容信息?

在安企CMS中,`archiveDetail` 标签是模板制作时一个非常核心且实用的工具,它主要用于获取和展示单个文档的详细内容信息。无论是博客文章、产品详情、新闻报道,还是其他任何需要独立展示的页面内容,`archiveDetail` 都能帮助您灵活地提取并呈现在网站的前端页面上。 ### `archiveDetail` 标签的核心功能概览 这个标签的设计宗旨是为单个文档提供丰富的数据支持

2025-11-08

如何使用`categoryList`和`categoryDetail`标签来构建和显示分类导航及详情?

在网站内容管理中,分类导航和详情页是用户浏览网站、获取信息的核心路径,也是搜索引擎理解网站结构的重要依据。一个清晰、直观的分类体系不仅能大幅提升用户体验,更能有效助力网站的SEO表现。对于安企CMS的用户而言,灵活运用系统提供的`categoryList`和`categoryDetail`这两个模板标签,可以轻松构建出功能强大、美观实用的分类导航和详情展示。 --- ### 一

2025-11-08

`pageList`和`pageDetail`标签如何管理和显示网站的单页面内容?

在网站运营中,单页面内容(如“关于我们”、“联系方式”、“服务介绍”等)扮演着至关重要的角色。它们通常是展示企业核心信息、品牌故事或特定服务详情的载体。为了高效地管理和显示这些页面,AnQiCMS 提供了 `pageList` 和 `pageDetail` 两个核心标签,让内容的组织和呈现变得既灵活又便捷。 ### 单页面内容的后台管理 在 AnQiCMS 后台

2025-11-08

`tagList`和`tagDataList`标签如何展示网站标签及相关文档列表?

在网站运营中,标签(Tag)是一种极其有用的内容组织工具。它们不仅能帮助用户更快地发现感兴趣的内容,提升网站的用户体验,还能优化搜索引擎抓取和理解网站内容,对SEO表现有着积极的促进作用。安企CMS为网站管理员提供了强大而灵活的标签管理功能,通过`tagList`和`tagDataList`这两个模板标签,我们可以轻松地在网站上展示标签列表以及与特定标签相关的文档。 ###

2025-11-08