AnQiCMS 的 `archiveFilters` 标签如何实现文章列表页的多条件筛选显示?

📅 👁️ 70

在网站运营中,为用户提供便捷、精准的内容查找体验至关重要。当网站内容日益丰富,简单的分类或关键词搜索往往不足以满足用户的个性化需求。这时,文章列表页的多条件筛选功能就显得尤为关键。对于 AnQiCMS 用户来说,巧妙利用 archiveFilters 标签,便能轻松实现这一目标,让您的文章列表页瞬间拥有强大的筛选能力。

核心功能揭秘:archiveFilters 的工作原理

archiveFilters 标签在 AnQiCMS 中扮演着一个智能向导的角色,它的主要任务并非直接过滤内容,而是根据您网站内容模型的定义,动态生成一系列可供用户点击的筛选链接。当用户点击这些链接时,页面URL会携带相应的筛选参数,而 archiveList 标签(当设置为分页模式 type="page" 时)则会自动识别并根据这些参数,从数据库中提取出符合条件的文章,从而实现多条件筛选显示。

简单来说,archiveFilters 标签的独特之处在于,它无需您手动编写复杂的筛选逻辑,只需在后台定义好内容模型的自定义字段,它就能自动读取这些字段的筛选选项,并为每个选项生成一个带有特定URL参数的链接。这种设计极大地简化了前端开发工作,让您能更专注于用户体验和内容呈现。

幕后准备:内容模型的自定义字段

要让 archiveFilters 标签发挥作用,首先需要在 AnQiCMS 后台做好“幕后准备”——即在您的内容模型中定义好可用于筛选的自定义字段。

想象一下,如果您的网站是一个房产信息平台,您可能希望用户能够根据“房屋类型”(如:住宅、公寓、别墅)、“面积范围”(如:50-80平米、80-120平米)等条件来筛选房源。

在 AnQiCMS 后台,您可以前往“内容管理”下的“内容模型”,选择或创建一个模型(例如“房产模型”),然后为其添加自定义字段。这些字段的类型非常关键:

  • 单项选择:适用于选项固定且用户只能选择一个的情况,如“房屋类型”。
  • 多项选择:如果用户可以同时选择多个标签或属性,例如“房源特色”(带花园、学区房等)。
  • 下拉选择:与单项选择类似,但在UI上以下拉菜单形式呈现。

当您为这些自定义字段设置好预设选项后,archiveFilters 标签就能智能地识别这些选项,并将其作为筛选条件呈现给用户。

手把手操作:如何在模板中使用 archiveFilters

了解了 archiveFilters 的工作原理和后台准备后,我们来看看如何在前端模板中实际应用它。

假设我们有一个“房产模型”,其中定义了 house_type (房屋类型) 和 area_range (面积范围) 两个自定义字段。

1. 引入 archiveFilters 标签

首先,在您的文章列表页模板(例如 article/list.htmlarchive/list.html)中,使用 archiveFilters 标签来获取筛选条件:

{# 引入 archiveFilters 标签,变量名为 filters,指定模型ID为1,所有选项的文本为“不限” #}
{% archiveFilters filters with moduleId="1" allText="不限" %}
    {# 遍历每个筛选组,例如“房屋类型”、“面积范围” #}
    {% for item in filters %}
    <div class="filter-group">
        <span class="filter-name">{{item.Name}}: </span> {# 输出筛选组的名称,如“房屋类型” #}
        <ul class="filter-options">
            {# 遍历当前筛选组下的所有选项,例如“住宅”、“公寓” #}
            {% for val in item.Items %}
            <li class="filter-item {% if val.IsCurrent %}active{% endif %}">
                <a href="{{val.Link}}">{{val.Label}}</a> {# 输出选项的文本和链接 #}
            </li>
            {% endfor %}
        </ul>
    </div>
    {% endfor %}
{% endarchiveFilters %}

在这段代码中:

  • archiveFilters filters with moduleId="1" allText="不限":我们告诉系统,获取模型ID为1(通常是文章或默认内容模型)的所有筛选条件,并将“全部”选项的显示文本设置为“不限”。filters是我们定义的一个变量,用来接收筛选数据。
  • {% for item in filters %}:外层循环遍历的是每一个筛选条件组,例如“房屋类型”、“面积范围”等。
    • {{item.Name}}:显示筛选组的友好名称(如“房屋类型”)。
    • {{item.FieldName}}:这是该筛选组对应的数据库字段名(如 house_type),虽然这里没有直接显示,但它在生成 val.Link 时起着核心作用。
  • {% for val in item.Items %}:内层循环遍历的是每个筛选组下的具体选项,例如“住宅”、“公寓”。
    • {{val.Label}}:显示筛选选项的文本(如“住宅”)。
    • {{val.Link}}:这是最关键的部分,它会自动生成一个

相关文章

如何在 AnQiCMS 模板中利用 `tdk` 标签动态生成页面的 Title、Keywords 和 Description?

在当今内容爆炸的互联网环境中,搜索引擎优化(SEO)对于网站的可见性至关重要。而网站页面的 Title(标题)、Keywords(关键词)和 Description(描述),也就是我们常说的 TDK,是搜索引擎理解页面内容、决定是否展示给用户,以及用户是否点击的关键因素。在 AnQiCMS 这样一款专为中小企业和内容运营团队设计的内容管理系统中,灵活、动态地生成这些 TDK 信息,是提升网站

2025-11-09

AnQiCMS 模板里如何显示当前分类的简介和 Banner 图片?

在网站运营中,如何让您的分类页面更具吸引力,同时清晰地传达信息,是提升用户体验和SEO效果的关键。安企CMS(AnQiCMS)凭借其灵活的模板系统,让您能够轻松在分类页面展示当前分类的简介和个性化的 Banner 图片。 接下来,我们将一起探索如何在 AnQiCMS 模板中实现这一功能,让您的网站分类页面更加生动和专业。 ### 1. 深入了解 AnQiCMS 模板系统 AnQiCMS

2025-11-09

如何在 AnQiCMS 网站中显示针对不同语言用户的 hreflang 标签?

在多语言网站的运营中,确保搜索引擎能够准确理解您的内容所针对的语言和地区,对于提升用户体验和搜索引擎优化(SEO)至关重要。`hreflang` 标签正是解决这一问题的关键工具。它告诉搜索引擎,您的网站上存在针对不同语言或地区的内容变体,从而避免重复内容问题,并帮助搜索引擎为不同语言用户展示最相关的页面。 AnQiCMS 作为一款支持多语言内容管理系统,已经为实现 `hreflang`

2025-11-09

AnQiCMS 模板中如何将时间戳格式化为“年-月-日 时:分”的显示格式?

在网站内容管理中,时间信息的清晰展示对于用户体验至关重要。无论是文章的发布日期,还是评论的提交时间,一个符合阅读习惯的格式都能让信息传达更有效。AnQiCMS 提供了灵活的模板功能,让我们可以轻松地对时间戳进行格式化。 ### 核心功能:AnQiCMS 的时间戳格式化标签 `stampToDate` AnQiCMS 模板引擎内置了一个名为 `stampToDate` 的标签

2025-11-09

如何在 AnQiCMS 模板中将文章的纯文本 URL 自动转换为可点击的超链接?

在日常的网站内容运营中,我们经常需要在文章、产品描述或单页面内容中提及一些外部链接或网址。如果这些网址仅仅以纯文本的形式出现,访客就无法直接点击跳转,这无疑会影响用户体验,甚至可能让一些重要的信息被忽视。AnQiCMS 作为一个功能强大的内容管理系统,提供了简单而高效的方法来解决这一问题,让您的内容更加生动和互动。 AnQiCMS 采用了类似 Django 的模板引擎语法

2025-11-09

AnQiCMS 如何在前端防止内容被采集,例如通过水印或干扰码显示?

守护原创:AnQiCMS前端防内容采集的智能策略 在互联网内容爆炸的时代,原创内容的价值愈发凸显,但也面临着被恶意采集的风险。我们辛苦创作的文字、精心设计的图片,可能转瞬之间就被他人窃取,这不仅是对创作者劳动成果的侵犯,也可能影响网站自身的SEO表现和品牌形象。那么,我们如何才能有效地保护自己的数字资产呢?安企CMS(AnQiCMS)在这个问题上,提供了非常实用的内置解决方案

2025-11-09

如何在 AnQiCMS 模板中使用 `if` 标签进行条件判断来控制内容的显示?

在安企CMS中管理内容时,我们经常需要根据不同的情况来显示不同的信息。例如,一篇博客文章可能有缩略图,而另一篇没有;或者某个模块只在特定条件下才显示。这时,灵活运用模板中的条件判断,即`if`标签,就能帮助我们实现这些动态化的内容展示需求。 安企CMS的模板引擎支持类似Django的语法,其中`if`标签是进行条件判断的核心工具。它能根据变量的值或者表达式的结果来决定哪部分内容应该被渲染出来

2025-11-09

AnQiCMS 的 `breadcrumb` 标签如何构建并显示当前页面的面包屑导航?

在网站运营中,面包屑导航(Breadcrumb Navigation)是提升用户体验和网站结构清晰度的重要元素。它不仅能帮助访问者快速了解当前所在页面在网站层级结构中的位置,还能有效辅助搜索引擎理解网站内容间的关系,对SEO优化有着积极作用。对于AnQiCMS的用户来说,构建和显示面包屑导航是一项非常便捷的操作,这得益于AnQiCMS内置的强大模板标签。 ### 理解 AnQiCMS 的

2025-11-09