如何通过URL参数或搜索关键词,动态筛选并显示文章列表?

📅 👁️ 75

在内容管理日益精细化的今天,如何让您的网站内容更智能、更贴心地服务访问者,是提升用户体验和网站价值的关键。安企CMS(AnQiCMS)作为一款高效、灵活的内容管理系统,提供了强大的功能来帮助我们实现这一点,尤其是在动态筛选和展示文章列表方面,其模板标签与URL参数的结合运用,能够轻松构建出高度可定制的内容呈现方式。

这篇文章将详细介绍如何利用URL参数和搜索关键词,在安企CMS中动态筛选并展示您的文章列表,让您的网站内容更具交互性和实用性。


一、理解动态筛选的核心机制

在安企CMS中,动态筛选文章列表主要依赖于两个核心模板标签:archiveList(文档列表标签)和 archiveFilters(文档参数筛选标签),并结合URL中的查询参数(Query Parameters)。

当用户在浏览器中访问一个页面时,URL中可能会包含一些“?”开头的参数,例如 /?category=技术&q=CMS。安企CMS的 archiveList 标签非常智能,当其设置为分页模式(type="page")时,它会自动识别并应用这些URL参数来过滤显示文章列表。这意味着,我们无需编写复杂的后端逻辑,只需在前端模板中合理运用标签,即可实现丰富的筛选功能。


二、基于关键词的快速搜索

最常见的动态筛选方式就是通过搜索关键词。访问者通常希望通过输入关键词来快速找到相关文章。

实现方式:

  1. 构建搜索表单: 在网站的合适位置(如导航栏、侧边栏),添加一个简单的HTML搜索表单。这个表单的提交方式(method)应为 GET,并且搜索框的 name 属性通常设置为 q

    <form method="get" action="/search">
        <div>
            <input type="text" name="q" placeholder="请输入搜索关键词" value="{{urlParams.q}}">
            <button type="submit">搜索</button>
        </div>
    </form>
    
    • 这里 action="/search" 指向您网站的搜索结果页模板(通常是 search/index.html)。
    • value="{{urlParams.q}}" 可以在用户搜索后保留其输入的关键词,提升用户体验。
  2. 显示搜索结果: 在搜索结果页(或其他需要展示搜索结果的页面)的模板中,使用 archiveList 标签并指定 type="page"。安企CMS会自动读取URL中的 q 参数,并根据其值来筛选文章标题包含该关键词的列表。

    {% archiveList archives with type="page" limit="10" %}
        {% for item in archives %}
        <article>
            <h3><a href="{{item.Link}}">{{item.Title}}</a></h3>
            <p>{{item.Description}}</p>
            <footer>发布日期: {{stampToDate(item.CreatedTime, "2006-01-02")}}</footer>
        </article>
        {% endfor %}
        {# 配合分页标签显示分页 #}
        {% pagination pages with show="5" %}
            {# ... 分页链接代码 ... #}
        {% endpagination %}
    {% endarchiveList %}
    

    通过这种方式,当用户提交搜索表单或直接访问类似 yourdomain.com/search?q=安企CMS 的URL时,archiveList 就会自动显示匹配关键词的文章。


三、利用内置字段进行筛选

除了关键词搜索,安企CMS还允许您通过内置的字段(如分类ID、模型ID、推荐属性等)来筛选文章列表。

实现方式:

您可以通过在URL中添加相应的参数来直接控制 archiveList 的筛选行为。

  • 按分类ID筛选: yourdomain.com/list?categoryId=1(显示分类ID为1的文章)
  • 按模型ID筛选: yourdomain.com/list?moduleId=2(显示模型ID为2的文章,如产品模型)
  • 按推荐属性筛选: yourdomain.com/list?flag=c(显示推荐属性为“推荐”的文章)

您可以在模板中手动构建这些筛选链接,或者结合导航标签自动生成。例如,在一个分类列表页中,您可以为每个子分类生成带有 categoryId 参数的链接:

{% categoryList categories with moduleId="1" parentId="0" %}
    <ul>
        {% for item in categories %}
        <li><a href="{{ item.Link }}">{{item.Title}}</a></li>
        {% endfor %}
    </ul>
{% endcategoryList %}

在文档列表页(archiveList type="page")中,如果 categoryId 未指定,它会自动尝试读取当前页面的分类ID进行筛选。


四、通过自定义字段实现高级动态筛选

这是安企CMS动态筛选的强大之处,它允许您根据自己定义的文章属性(例如:地区、房产类型、颜色等)来创建复杂的筛选器。

实现步骤:

  1. 准备工作:在内容模型中定义自定义字段 首先,您需要在安企CMS后台的 内容管理 -> 内容模型 中,为您需要筛选的文章模型添加自定义字段。 例如,如果您的网站是房产网站,文章模型中可能需要添加“地区”(单选/下拉)、“房屋类型”(多选)等字段。在添加字段时,您可以选择不同的字段类型(如单行文本、数字、单项选择、多项选择、下拉选择等),这些字段将在文章发布时供编辑填写。特别是选择类型字段(单项、多项、下拉),它们的选项值将直接用于筛选。

  2. 构建筛选界面:运用 archiveFilters 标签 在您的文章列表页模板中,使用 archiveFilters 标签来自动生成基于这些自定义字段的筛选选项。这个标签会读取您内容模型中定义的筛选字段,并为每个选项生成一个带有相应URL参数的链接。

    ”`twig

    <h4>筛选条件</h4>
    {% archiveFilters filters with moduleId="1" allText="不限" %}
        {% for item in filters %}
        <ul class="filter-group">
            <li><strong>{{item.Name}}:</strong></li> {# 字段名称,如“地区” #}
            {% for val in item.Items %}
    

相关文章

如何在前端表单中嵌入并显示留言验证码?

在网站运营中,留言板和评论区往往是与用户互动的重要渠道。然而,随之而来的垃圾信息和恶意提交也是一个令人头疼的问题。为了有效过滤这些噪音,集成验证码功能是行之有效的方法。今天,我们就来聊聊如何在安企CMS(AnQiCMS)的前端表单中,轻松地嵌入并显示留言验证码,为你的网站筑起一道防线。 整个过程可以分为三个主要步骤:首先是后台设置,然后是前端模板的 HTML 结构,最后是 JavaScript

2025-11-09

如何将多行文本内容,按照换行符转换为HTML格式显示?

在内容管理中,我们经常会遇到需要输入多行文本的情况,比如产品详情、服务介绍、公司简介或是联系方式。这些内容在后台编辑时,我们习惯性地通过回车键来分段。然而,当这些内容直接呈现在网站前台时,您可能会发现它们“挤”成一团,所有的回车符都消失了,这不仅影响阅读体验,也让页面显得杂乱无章。安企CMS作为一款高效的企业级内容管理系统,当然考虑到了这一点,并提供了多种优雅的解决方案

2025-11-09

如何在模板中动态获取和显示当前年份?

在网站运营中,保持内容的实时性和准确性至关重要,尤其是像版权年份这样的信息,如果手动更新,不仅繁琐而且容易遗漏。安企CMS为我们提供了非常便捷的方式,在模板中动态获取并显示当前年份,确保网站信息的最新。 ### 动态获取当前年份的核心:`now` 标签 安企CMS的模板系统采用了类似Django模板引擎的语法,它内置了一个非常实用的 `now` 标签

2025-11-09

如何在网站关闭维护时,向访问者显示自定义的闭站提示信息?

作为网站运营者,我们总会遇到需要对网站进行维护升级的情况,无论是数据库优化、系统更新,还是内容调整,这些操作有时需要暂时关闭网站,以免在维护期间出现意料之外的错误或不完整的内容展示。然而,简单地让网站显示“打不开”的错误页面,无疑会给访问者带来不良体验,甚至可能让搜索引擎误以为网站已永久下线。 安企CMS(AnQiCMS)深知这一痛点,提供了一套优雅且灵活的解决方案,让您能够在网站关闭维护时

2025-11-09

如何管理和显示分类的Banner图和缩略图?

在网站运营中,分类页面是引导用户浏览、深化品牌印象的重要环节。为分类页面配置独特的Banner图和缩略图,不仅能提升网站的视觉吸引力,也能让用户更直观地理解分类内容,有效优化用户体验。安企CMS在这方面提供了灵活且易于操作的功能,帮助我们高效管理和展示这些视觉元素。 --- ### 一、高效管理分类的Banner图和缩略图 管理分类的Banner图和缩略图是网站内容视觉化的第一步

2025-11-09

如何在一个分类页面中同时显示子分类和该分类下的文章列表?

运营AnQiCMS网站时,我们经常遇到这样的需求:在一个分类页面中,我们不仅希望展示该分类下的文章列表,还希望能够清晰地列出它的所有子分类,方便用户进行更细致的导航。安企CMS凭借其灵活的模板引擎和丰富的内置标签,完全能够帮助我们轻松实现这一目标。 ### 理解安企CMS的分类页面与模板机制 在安企CMS中,每个分类(无论是文章分类还是产品分类)都可以关联一个独立的模板文件。通常情况下

2025-11-09

如何在文章内容中,通过`safe`过滤器正确显示HTML富文本内容?

在网站内容运营中,富文本(Rich Text)内容扮演着至关重要的角色。它允许我们通过图片、链接、粗体、斜体等多种格式来丰富文章的表达,提升阅读体验。安企CMS(AnQiCMS)提供了功能强大的后台编辑器,方便我们轻松创建各类精彩内容。然而,当这些富文本内容最终呈现在网站页面上时,有时会发现原本漂亮的排版和链接变成了原始的HTML代码字符串,这究竟是为什么呢? ###

2025-11-09

如何在模板中,使用过滤器对显示的数字、字符串进行格式化(如浮点数位数、大小写转换)?

在网站内容呈现中,数据的美观与易读性与内容本身的质量同样重要。安企CMS(AnQiCMS)在模板层面提供了强大的过滤器(Filters)功能,让我们可以轻松地对页面上显示的数字和字符串进行格式化处理,从而提升用户体验和页面信息的专业度。 ### 过滤器:数据处理的“工序” 我们可以把过滤器想象成一道道处理数据的“工序”。原始数据就像未经加工的原材料,通过过滤器的处理,它可以变成我们需要的形状

2025-11-09