`archiveList` 标签如何精确筛选并展示特定分类、模型或推荐属性的文档列表?

📅 👁️ 65

在安企CMS中,archiveList 标签是构建动态内容列表的核心工具,它让你可以灵活地从网站的文档库中提取并展示你想要的内容。无论是展示特定分类下的最新文章,还是某个内容模型下的热门产品,抑或是带有特定推荐属性的专题文档,archiveList 都能通过其丰富的参数配置,帮助你精准地实现这些需求。

精准定位内容:分类、模型与推荐属性

首先,让我们了解archiveList标签在筛选内容方面最常用的几个维度:分类、内容模型和推荐属性。

1. 按分类筛选文档 (categoryId)

网站的内容通常会根据其主题被归类到不同的分类下,比如“公司新闻”、“行业动态”或“产品介绍”等。archiveList标签可以通过categoryId参数,让你轻松地指定要展示哪个或哪些分类下的文档。

  • 指定单个或多个分类:如果你想显示某个特定分类(例如ID为10)下的文档,可以这样使用:{% archiveList archives with categoryId="10" %}。如果需要显示多个分类(例如ID为10、12、15)下的文档,只需用逗号将它们隔开:{% archiveList archives with categoryId="10,12,15" %}
  • 控制子分类内容:在某些情况下,你可能只希望显示当前分类本身的文档,而不包含其子分类的内容。这时,child="false"参数就派上用场了。默认情况下,archiveList是会包含子分类内容的。如果你只想要当前分类(ID为10)的文档,可以这样写:{% archiveList archives with categoryId="10" child="false" %}
  • 不依赖当前页面分类:有时,即便你在分类页面,也可能不希望archiveList自动读取当前页面的分类ID。这时,你可以明确设置categoryId="0"来阻止这种自动行为,并自行指定需要筛选的分类ID。

2. 按内容模型筛选文档 (moduleId)

安企CMS的一大亮点在于其灵活的内容模型机制,它允许你为不同类型的内容(如文章、产品、案例等)定义独立的字段结构。archiveList标签通过moduleId参数,可以让你精确地筛选出属于特定内容模型的文档。

  • 识别内容模型:在安企CMS的后台,你可以为不同的内容类型创建内容模型(例如,系统默认的“文章模型”和“产品模型”)。每个内容模型都有一个唯一的ID。通过指定这个ID,archiveList就能只显示该模型下的文档。例如,如果你想显示产品模型下的文档,而产品模型ID为2,可以这样使用:{% archiveList products with moduleId="2" %}
  • 结合分类与模型:你还可以将moduleIdcategoryId结合使用,比如显示某个分类下,且属于产品模型的产品列表。

3. 按推荐属性筛选文档 (flag)

在发布文档时,安企CMS提供了多种推荐属性,如“头条”、“推荐”、“幻灯”等,这些属性用不同的字母标识(例如,h代表头条,c代表推荐)。archiveList标签可以通过flag参数,根据这些属性来筛选内容。

  • 指定推荐属性:如果你想在首页展示所有被标记为“推荐”的文档,可以这样使用:{% archiveList featuredDocs with flag="c" %}。你可以组合使用多个属性,例如flag="h,c"会显示既是头条又是推荐的文档。
  • 排除特定属性:如果想排除某些特定属性的文档,可以使用excludeFlag参数。例如,{% archiveList normalDocs with excludeFlag="h" %}会显示所有非头条的文档。
  • 显示属性标识:如果你需要在列表中显示文档的推荐属性,可以在archiveList标签中添加showFlag="true"参数。

扩展筛选能力:更多实用参数

除了上述核心筛选条件,archiveList还提供了其他多种参数来进一步优化你的内容列表:

  • 排序方式 (order):你可以根据文档ID(最新发布)、浏览量(最热门)或后台自定义排序来排列文档。例如,order="id desc"表示按ID降序(最新发布),order="views desc"表示按浏览量降序。
  • 显示数量与分页 (limit, type="page")limit参数用于控制显示多少条文档。如果你需要实现分页功能,可以将type参数设置为"page",并结合pagination标签来创建完整的分页导航。
  • 搜索关键词 (q):在搜索结果页,q参数可以用来匹配文档标题中包含特定关键词的内容。如果URL中已包含q参数,archiveList会自动读取并应用。
  • 自定义筛选参数:安企CMS允许你在后台为内容模型定义自定义字段。如果这些字段被设置为可筛选,archiveList可以根据URL中的查询参数进行进一步筛选,这对于创建高度定制化的筛选界面(如房产网站按面积、户型筛选)非常有用。你可以结合archiveFilters标签来构建这些筛选条件。
  • 多站点数据调用 (siteId):如果你使用了安企CMS的多站点管理功能,siteId参数可以让你调用其他站点的数据。
  • 组合文档展示 (combineId, combineFromId):这是一个高级用法,用于在列表中将多个文档组合显示,比如展示“从A地到B地的旅游线路”,它可以动态地组合文档标题和链接,常用于比较或组合信息场景。

实际应用场景示例

让我们通过几个常见场景,看看archiveList标签如何发挥作用:

场景一:在首页展示最新的5篇公司新闻

假设“公司新闻”分类的ID是10,且属于“文章模型”(ID为1)。

<div class="latest-news">
    <h2>最新公司新闻</h2>
    <ul>
        {% archiveList news with moduleId="1" categoryId="10" limit="5" order="id desc" %}
            {% for item in news %}
                <li>
                    <a href="{{ item.Link }}">{{ item.Title }}</a>
                    <span>发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
                </li>
            {% empty %}
                <li>暂无公司新闻。</li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</div>

场景二:在侧边栏展示热门推荐产品

假设“产品模型”的ID是2,并且产品被标记为“推荐”(c)。

<div class="hot-products">
    <h3>热门推荐产品</h3>
    <ul>
        {% archiveList hotProducts with moduleId="2" flag="c" limit="3" order="views desc" %}
            {% for item in hotProducts %}
                <li>
                    <a href="{{ item.Link }}">
                        <img src="{{ item.Thumb }}" alt="{{ item.Title }}">
                        {{ item.Title }}
                    </a>
                </li>
            {% empty %}
                <li>暂无推荐产品。</li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</div>

场景三:在分类页面展示当前分类及其子分类的文章列表,并支持分页

假设文章模型ID为1,并且在分类页面的模板中,archiveList会自动获取当前分类ID。

<div class="category-articles">
    <h1>{% categoryDetail with name="Title" %}</h1> {# 显示当前分类标题 #}
    <ul>
        {% archiveList articles with moduleId="1" type="page" limit="10" order="id desc" %}
            {% for item in articles %}
                <li>
                    <a href="{{ item.Link }}">{{ item.Title }}</a>
                    <span>所属分类:{% categoryDetail with name="Title" id=item.CategoryId %}</span>
                    <span>阅读量:{{ item.Views }}</span>
                </li>
            {% empty %}
                <li>当前分类下暂无文章。</li>
            {% endfor %}
        {% endarchiveList %}
    </ul>

    {# 分页导航 #}
    {% pagination pages with show="5" %}
        <div class="pagination-nav">
            {% if pages.PrevPage %}<a href="{{ pages.PrevPage.Link }}">上一页</a>{% endif %}
            {% for item in pages.Pages %}
                <a href="{{ item.Link }}" class="{% if item.IsCurrent %}active{% endif %}">{{ item.Name }}</a>
            {% endfor %}
            {% if pages.NextPage %}<a href="{{ pages.NextPage.Link }}">下一页</a>{% endif %}
        </div>
    {% endpagination %}
</div>

通过这些灵活的参数组合,archiveList标签可以帮助你构建出高度定制化且功能强大的内容列表,满足各种内容展示需求。


常见问题 (FAQ)

1. 如何在archiveList标签中同时应用多个筛选条件?

你可以在archiveList标签中直接同时添加多个参数,系统会自动将这些条件组合起来进行筛选。例如,如果你想获取“文章模型”(moduleId="1")下,“公司新闻”分类(categoryId="10"),且带有“推荐”属性(flag="c")的最新5篇文章,可以这样写: {% archiveList news with moduleId="1" categoryId="10" flag="c" limit="5" order="id desc" %}

2. archiveList标签可以在网站的哪些页面使用?

archiveList标签理论上可以在网站的任何模板文件(如首页、分类页、详情页、搜索结果页、自定义页面等)中使用。当你在非分类页或非模型页使用时,你可能需要更明确地指定moduleIdcategoryId等参数。但在分类页或模型页

相关文章

如何在 AnQiCMS 模板中利用 Django 风格的标签和变量动态展示数据?

AnQiCMS 提供了一套灵活且功能强大的模板系统,它采用了类似 Django 模板引擎的语法风格,这使得有经验的开发者能够快速上手,同时也非常直观,即便是不熟悉模板语言的用户也能通过简单的学习来动态呈现网站内容。这套系统以其简洁的标签和变量使用方式,让数据与前端页面的交互变得高效且易于管理。 要充分利用 AnQiCMS 模板来动态展示数据,我们需要理解其核心的语法结构:变量、标签和过滤器

2025-11-07

AnQiCMS 支持的自适应、代码适配、PC+手机端模板模式应如何选择和应用?

在构建和运营网站时,如何确保内容能够在各种设备上优雅且高效地呈现,是每个运营者都需要面对的挑战。AnQiCMS 作为一个功能丰富的企业级内容管理系统,充分考虑了这一点,提供了自适应、代码适配和PC+手机端独立站点这三种灵活的模板模式,让我们能够根据实际需求做出**选择。 接下来,我们将深入探讨这三种模式的特点、应用场景以及在 AnQiCMS 中如何配置和运用

2025-11-07

模板制作时,AnQiCMS 对模板文件命名和目录结构有哪些具体约定?

AnQiCMS 作为一个以其高效、灵活著称的内容管理系统,在模板制作方面也有一套清晰的约定,旨在帮助开发者和运营者构建结构清晰、易于维护的网站。理解这些约定,是高效利用 AnQiCMS 进行网站定制和内容展示的关键一步。 ### 模板文件的核心约定 AnQiCMS 的模板文件,统一采用 `.html` 作为后缀名。这一约定让文件类型一目了然,也有助于编辑器进行语法高亮和智能提示

2025-11-07

AnQiCMS 的模块化设计如何支持个性化定制和二次开发需求?

在内容管理系统(CMS)的选择上,灵活性和可扩展性是许多企业和个人用户关注的核心。安企CMS(AnQiCMS)以其独特的模块化设计,在支持个性化定制和二次开发方面展现出了显著的优势,让用户能够根据自身需求,打造出功能强大且独具特色的网站。 ### 模块化设计的基石:核心架构的弹性 安企CMS采用Go语言开发,这一选择本身就为系统带来了高性能和高并发的优势。更重要的是

2025-11-07

`archiveDetail` 标签如何获取特定文档的标题、内容、图片及自定义字段进行展示?

在AnQiCMS中,如何使用`archiveDetail`标签精细控制文档内容展示? AnQiCMS作为一个高效、灵活的内容管理系统,其核心优势之一在于其强大的内容展示能力。对于网站上每一篇独立的文章、产品详情或其他任何“文档”类型的内容,我们都希望能够精细控制它们在前台页面的展示方式。这正是`archiveDetail`标签大展身手的地方。它不仅能帮助我们获取文档的基础信息

2025-11-07

`categoryList` 标签如何实现多级分类的层级显示和嵌套调用?

在AnQiCMS中构建一个清晰、有条理的网站导航,特别是处理多级分类时,是提升用户体验和网站可访问性的关键。`categoryList` 标签正是为此而生,它提供了强大的功能,帮助我们灵活地展示分类的层级结构,并进行精细化的嵌套调用。 ### 理解 `categoryList` 标签的基础 `categoryList` 标签是AnQiCMS模板引擎中的一个核心组件

2025-11-07

如何在文章详情页使用 `prevArchive` 和 `nextArchive` 标签导航到相邻文档?

在内容驱动的今天,网站文章详情页的用户体验显得尤为重要。当读者沉浸于一篇精彩内容时,如果能顺畅地导航到相关或相邻的文章,不仅能延长他们在网站上的停留时间,提升页面浏览量,还能通过内部链接结构,间接优化搜索引擎的抓取和排名。安企CMS作为一款高效、SEO友好的内容管理系统,充分考虑到了这些细节,并提供了简单直观的模板标签,帮助我们轻松实现这一功能。 今天

2025-11-07

`tagDataList` 标签如何获取并分页展示特定 Tag 下的所有相关文档?

在安企CMS中管理内容时,标签(Tag)是组织和分类信息的重要工具。它不仅能帮助用户快速找到相关主题的内容,还能显著提升网站的内部链接结构和SEO表现。当需要展示某个特定标签下的所有相关文档,并进行分页管理时,`tagDataList` 标签便成为了不可或缺的核心功能。 本文将深入探讨如何高效地利用 `tagDataList` 标签来获取并分页展示特定标签下的文档

2025-11-07