在内容管理日益精细化的今天,如何让您的网站内容更智能、更贴心地服务访问者,是提升用户体验和网站价值的关键。安企CMS(AnQiCMS)作为一款高效、灵活的内容管理系统,提供了强大的功能来帮助我们实现这一点,尤其是在动态筛选和展示文章列表方面,其模板标签与URL参数的结合运用,能够轻松构建出高度可定制的内容呈现方式。
这篇文章将详细介绍如何利用URL参数和搜索关键词,在安企CMS中动态筛选并展示您的文章列表,让您的网站内容更具交互性和实用性。
一、理解动态筛选的核心机制
在安企CMS中,动态筛选文章列表主要依赖于两个核心模板标签:archiveList(文档列表标签)和 archiveFilters(文档参数筛选标签),并结合URL中的查询参数(Query Parameters)。
当用户在浏览器中访问一个页面时,URL中可能会包含一些“?”开头的参数,例如 /?category=技术&q=CMS。安企CMS的 archiveList 标签非常智能,当其设置为分页模式(type="page")时,它会自动识别并应用这些URL参数来过滤显示文章列表。这意味着,我们无需编写复杂的后端逻辑,只需在前端模板中合理运用标签,即可实现丰富的筛选功能。
二、基于关键词的快速搜索
最常见的动态筛选方式就是通过搜索关键词。访问者通常希望通过输入关键词来快速找到相关文章。
实现方式:
构建搜索表单: 在网站的合适位置(如导航栏、侧边栏),添加一个简单的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}}"可以在用户搜索后保留其输入的关键词,提升用户体验。
- 这里
显示搜索结果: 在搜索结果页(或其他需要展示搜索结果的页面)的模板中,使用
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动态筛选的强大之处,它允许您根据自己定义的文章属性(例如:地区、房产类型、颜色等)来创建复杂的筛选器。
实现步骤:
准备工作:在内容模型中定义自定义字段 首先,您需要在安企CMS后台的 内容管理 -> 内容模型 中,为您需要筛选的文章模型添加自定义字段。 例如,如果您的网站是房产网站,文章模型中可能需要添加“地区”(单选/下拉)、“房屋类型”(多选)等字段。在添加字段时,您可以选择不同的字段类型(如单行文本、数字、单项选择、多项选择、下拉选择等),这些字段将在文章发布时供编辑填写。特别是选择类型字段(单项、多项、下拉),它们的选项值将直接用于筛选。
构建筛选界面:运用
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 %}