文档列表标签`archiveList`如何按条件筛选和分页显示文章或产品?

📅 👁️ 68

在安企CMS中,当我们希望在网站页面上展示一系列文章、产品或其他内容时,archiveList 标签是我们不可或缺的强大工具。它不仅能帮助我们灵活地提取和展示各类内容,还能根据多种条件进行精细筛选,并优雅地实现内容的分页显示,从而极大提升用户浏览体验和网站的信息组织效率。

灵活获取内容:archiveList 的基础用法

archiveList 标签的核心作用是获取指定的内容列表。最简单的使用方式,就像这样:

{% archiveList archives with type="list" limit="10" %}
    {% for item in archives %}
        <div class="article-item">
            <a href="{{item.Link}}">
                <h3>{{item.Title}}</h3>
                <p>{{item.Description}}</p>
                <span>发布时间:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
            </a>
        </div>
    {% empty %}
        <p>当前没有任何内容可显示。</p>
    {% endfor %}
{% endarchiveList %}

这里,我们通过 archiveList 标签将获取到的文档列表赋值给 archives 变量。type="list" 表示我们希望获取一个简单的列表,而 limit="10" 则限制了显示数量为 10 条。在 for 循环中,我们可以很方便地访问 item 对象的各种属性,如 Title(标题)、Link(链接)、Description(简介)以及 CreatedTime(创建时间)等。如果列表为空,{% empty %} 块中的内容就会显示出来,避免页面空白。

精细筛选,精准定位目标内容

archiveList 标签的真正强大之处在于其丰富的筛选参数,这些参数能帮助我们精确地控制显示哪些内容:

  1. 按内容模型筛选 (moduleId) 如果你的网站有文章和产品等不同的内容类型(在安企CMS中称为“内容模型”),你可以通过 moduleId 参数来指定只显示某一类内容。例如,moduleId="1" 通常用于获取文章列表,而 moduleId="2" 可能用于获取产品列表,具体取决于你在后台的模型设置。

  2. 按分类筛选 (categoryId, excludeCategoryId, child) 这是最常用的筛选方式之一。你可以指定一个或多个分类ID(用逗号隔开),来显示特定分类下的内容。

    • categoryId="1":只显示ID为1的分类下的内容。
    • categoryId="1,2,3":显示ID为1、2、3的分类下的内容。
    • excludeCategoryId="4":排除ID为4的分类下的内容。
    • 默认情况下,archiveList 会自动包含子分类的内容。如果你只希望显示当前指定分类下的内容,而不包括其子分类,可以添加 child=false
    • 一个特别有用的技巧是,如果你在分类列表页使用 archiveList 但不指定 categoryId,它会自动读取当前页面的分类ID。如果你不希望它自动读取,可以明确设置 categoryId="0"
  3. 按推荐属性筛选 (flag, excludeFlag) 在后台发布文章或产品时,我们可以为其设置“头条”、“推荐”、“幻灯”等推荐属性。通过 flag 参数,你可以轻松调用这些被特殊标记的内容。例如,flag="c" 可以用来显示所有被标记为“推荐”的文章,而 excludeFlag="h" 则可以排除所有“头条”内容。

  4. 按关键词搜索 (q) 当你在制作搜索结果页时,q 参数就显得尤为重要。它允许你根据用户输入的关键词来筛选内容标题。如果你的URL中已经包含了 q=关键词 这样的查询参数,archiveList 标签会自动读取并应用这个搜索条件,使得构建搜索功能非常便捷。

  5. 按排序方式展示 (order) 内容的排序可以显著影响用户获取信息的效率。order 参数提供了多种排序方式:

    • order="id desc":按内容ID倒序排列(最新发布的内容在前)。
    • order="views desc":按浏览量倒序排列(热门内容在前)。
    • order="sort desc":按后台设置的自定义排序字段倒序排列。
  6. 自定义筛选参数 安企CMS允许你为内容模型添加自定义字段。如果这些字段被设置为可筛选,那么你就可以通过URL中的查询参数进行高级筛选。例如,如果你的产品模型有一个“颜色”字段,你可以通过在URL中添加 color=红色 来筛选出所有红色的产品。这通常需要配合 archiveFilters 标签来生成这些筛选链接。

  7. 多站点与特殊组合 (siteId, combineId, combineFromId) 如果你在使用安企CMS的多站点管理功能,siteId 可以帮助你获取指定站点的内容。而 combineIdcombineFromId 则是更高级的用法,用于在列表中将两篇内容组合展示,生成新的标题和链接,这在构建对比页面或复杂推荐逻辑时非常有用。

优雅呈现:实现内容分页

当内容数量庞大时,分页是保持页面整洁和提升加载速度的关键。archiveList 标签与 pagination 标签结合,可以轻松实现分页功能。

首先,你需要将 archiveListtype 参数设置为 "page"

{% archiveList archives with type="page" limit="10" categoryId="1" order="id desc" %}
    {% for item in archives %}
        <div class="product-card">
            <a href="{{item.Link}}">
                <img src="{{item.Thumb}}" alt="{{item.Title}}">
                <h3>{{item.Title}}</h3>
                <p>浏览量:{{item.Views}}</p>
            </a>
        </div>
    {% empty %}
        <p>此分类下暂无产品。</p>
    {% endfor %}
{% endarchiveList %}

{# 分页代码将紧随其后 #}
<div class="pagination-area">
    {% pagination pages with show="5" %}
        {# 首页链接 #}
        <a class="page-link {% if pages.FirstPage.IsCurrent %}active{% endif %}" href="{{pages.FirstPage.Link}}">{{pages.FirstPage.Name}}</a>
        {# 上一页链接 #}
        {% if pages.PrevPage %}
        <a class="page-link" href="{{pages.PrevPage.Link}}">{{pages.PrevPage.Name}}</a>
        {% endif %}
        {# 中间页码链接 #}
        {% for pageItem in pages.Pages %}
        <a class="page-link {% if pageItem.IsCurrent %}active{% endif %}" href="{{pageItem.Link}}">{{pageItem.Name}}</a>
        {% endfor %}
        {# 下一页链接 #}
        {% if pages.NextPage %}
        <a class="page-link" href="{{pages.NextPage.Link}}">{{pages.NextPage.Name}}</a>
        {% endif %}
        {# 末页链接 #}
        <a class="page-link {% if pages.LastPage.IsCurrent %}active{% endif %}" href="{{pages.LastPage.Link}}">{{pages.LastPage.Name}}</a>
    {% endpagination %}
</div>

在这个例子中,limit="10" 定义了每页显示 10 条内容。pagination pages with show="5" 则会生成一个分页导航,其中 show="5" 表示最多显示 5 个页码按钮。pages 对象包含了所有与分页相关的信息,比如总页数 (TotalPages)、当前页 (CurrentPage)、首页链接 (FirstPage)、末页链接 (LastPage)、上一页 (PrevPage) 和下一页 (NextPage),以及所有可见页码的数组 (Pages)。通过循环 pages.Pages,我们可以构建出完整且可点击的页码导航。

总结

archiveList 标签是安

相关文章

单页面列表标签`pageList`和单页面详情标签`pageDetail`如何管理和显示静态页面内容?

在网站运营中,静态页面扮演着不可或缺的角色,它们通常承载着如“关于我们”、“联系方式”、“隐私政策”、“服务介绍”等相对固定且不常更新的核心内容。安企CMS为这些页面的管理与展示提供了两大利器:单页面列表标签`pageList`和单页面详情标签`pageDetail`。这两者协同工作,让您能够轻松驾驭网站的静态内容,无论是构建导航、展示服务列表,还是呈现详细的企业介绍,都能得心应手。 ###

2025-11-07

分类详情标签`categoryDetail`如何获取并显示特定分类的详细信息?

在安企CMS的网站内容运营中,我们经常需要精确地获取并展示特定分类的详细信息。无论是展示分类的名称、描述,还是其关联的图片、内容,`categoryDetail`标签都能提供灵活且强大的支持,帮助我们构建动态丰富的分类页面。 ### `categoryDetail`标签的核心功能与基本用法 `categoryDetail`标签旨在获取单个分类的详尽数据。它的基本结构简洁明了

2025-11-07

分类列表标签`categoryList`如何获取并显示文章、产品分类信息?

在AnQiCMS中管理和展示网站内容,分类信息扮演着至关重要的角色。无论是组织产品目录,还是整理文章专题,清晰的分类结构都能极大提升用户体验和网站的导航效率。而`categoryList`标签正是AnQiCMS提供的一把利器,帮助我们灵活地获取并展示这些分类信息。 `categoryList`标签的主要作用是**检索并循环显示您网站中的分类数据**。它能根据您的需求

2025-11-07

面包屑导航标签`breadcrumb`如何动态生成并显示当前页面的导航路径?

在网站运营中,清晰的导航路径对于用户体验和搜索引擎优化都至关重要。想象一下,用户在您的网站上浏览,就像在陌生城市中探索一样,如果能随时看到自己身处何处,以及来时的路,那将极大提升他们的信心和浏览效率。这就是面包屑导航(Breadcrumb Navigation)的价值所在。它就像您手中的一串指路面包屑,为用户提供了从首页到当前页面的明确路径。 AnQiCMS 作为一款高效的内容管理系统

2025-11-07

文档详情标签`archiveDetail`如何获取并显示单篇文档的完整内容?

在安企CMS中,展示单篇文档的完整内容是网站运营的基础。无论您是发布一篇新闻文章、一个产品详情,还是一项服务介绍,核心都在于如何高效且准确地将后台录入的数据呈现在用户面前。这正是`archiveDetail`标签及其相关机制发挥作用的地方。 ### 理解`archiveDetail`:获取单篇文档的核心 当我们谈论获取单篇文档的完整内容时,首先要明确一点

2025-11-07

上一篇/下一篇文档标签`prevArchive`/`nextArchive`如何实现内容之间的导航显示?

在网站运营中,为读者提供流畅的阅读体验是提升用户满意度和网站价值的关键。当用户浏览完一篇精彩的文章或产品介绍后,如果能顺手看到“上一篇”或“下一篇”的相关内容,无疑会大大增加他们在网站上的停留时间,形成更自然的浏览路径,这对于SEO优化和内容传播都非常有益。安企CMS作为一款功能强大的内容管理系统,深知这一需求

2025-11-07

文档参数标签`archiveParams`和筛选标签`archiveFilters`如何实现内容的自定义属性显示与筛选?

在安企CMS中,内容的自定义属性显示与筛选是实现灵活、个性化网站功能的核心。借助模板标签中的`archiveParams`和`archiveFilters`,我们可以轻松地在前端展示自定义内容字段,并为用户提供基于这些字段进行内容筛选的强大功能,从而极大提升网站的用户体验和内容的可发现性。 ### `archiveParams` 标签:自定义属性的灵活展示 在安企CMS中

2025-11-07

文档Tag列表标签`tagList`、详情标签`tagDetail`、文档列表标签`tagDataList`如何实现内容的标签化显示?

在网站运营中,高效的内容管理和灵活的内容展示是提升用户体验和搜索引擎表现的关键。安企CMS(AnQiCMS)深谙此道,提供了强大的标签功能,帮助我们轻松实现内容的标签化管理和显示。通过巧妙运用`tagList`、`tagDetail`和`tagDataList`这三个核心标签,我们可以为网站内容插上翅膀,让信息组织更科学,用户查找更便捷,同时也为SEO优化打下坚实基础。 ### 核心

2025-11-07