如何设置安企CMS的文章或产品列表按指定条件

📅 👁️ 65

在使用安企CMS管理网站内容时,高效地展示文章或产品列表是提升用户体验和网站功能性的关键。安企CMS提供了灵活而强大的模板标签,让我们可以根据各种指定条件来精确控制内容的输出。无论是按分类显示最新文章,还是根据特定属性筛选产品,安企CMS都能帮助我们轻松实现。

灵活驾驭内容:文档列表标签 archiveList

安企CMS的核心内容展示能力主要通过 archiveList 标签实现。这个标签允许我们从数据库中提取文章、产品或其他类型的内容,并根据我们设定的条件进行筛选和排序。

要使用 archiveList 标签,基本结构是这样的:

{% archiveList archives with [参数列表] %}
    {% for item in archives %}
        <!-- 在这里显示每个文章或产品的详细信息 -->
        <a href="{{ item.Link }}">{{ item.Title }}</a>
        <!-- ...更多内容,如简介、图片等 -->
    {% empty %}
        <p>暂时没有符合条件的内容。</p>
    {% endfor %}
{% endarchiveList %}

这里 archives 是我们为获取到的内容列表定义的变量名,你可以根据自己的喜好命名。item 则代表列表中的每一个单独的内容项。

让我们深入了解一下常用的参数,它们是控制列表显示的关键:

  • 指定内容模型(moduleId:这是最基本的条件。安企CMS支持文章、产品等多种内容模型。如果你想显示文章列表,通常会指定 moduleId="1"(文章模型的ID);如果是产品列表,则可能是 moduleId="2"。具体的ID可以在后台的“内容管理” -> “内容模型”中查看。例如:moduleId="1"

  • 按分类筛选(categoryId:我们常常需要显示某个特定分类下的内容。你可以通过 categoryId 参数指定一个或多个分类的ID(用逗号隔开),例如 categoryId="1,5,8"。如果你想显示当前页面所属分类的内容,而不需要手动指定ID,安企CMS会智能地读取当前分类ID。如果你想获取所有内容,或者不希望它自动读取当前分类ID,可以明确设置为 categoryId="0"。此外,excludeCategoryId 参数则允许你排除某些分类的内容。

  • 控制显示数量与分页(limittype

    • limit 参数用于控制单次显示的内容数量,例如 limit="10" 会显示最新的10条内容。它也支持偏移量模式,比如 limit="2,10" 表示从第2条内容开始,获取10条数据。
    • type 参数非常重要,它决定了列表的展示方式。设置为 type="list" 时,将只显示 limit 指定数量的内容;设置为 type="page" 时,内容列表将支持分页,这需要配合 pagination 标签一起使用;而 type="related" 则用于显示与当前文章相关的推荐内容,通常在文章详情页使用。
  • 内容排序(order:内容的显示顺序同样重要。你可以根据需要选择不同的排序方式,例如 order="id desc" 表示按ID降序(最新发布),order="views desc" 表示按浏览量降序(最热门),order="sort desc" 则是按后台自定义的排序值降序。

  • 推荐属性筛选(flag:安企CMS允许为文章或产品设置多种推荐属性,如“头条”、“推荐”、“幻灯”等。你可以通过 flag 参数来筛选具有特定属性的内容,例如 flag="c" 仅显示被标记为“推荐”的内容。excludeFlag 参数则用于排除具有特定属性的内容。

  • 包含子分类内容(child:默认情况下,archiveList 会包含子分类下的内容(child=true)。如果你只想显示当前分类直接管理的内容,而不包含其子分类的内容,可以设置为 child=false

  • 模糊搜索(q:当 type="page" 时,你可以通过 q 参数进行关键词搜索,例如 q="SEO优化"。如果URL中包含了 q=关键词 的查询参数,archiveList 会自动读取并进行搜索。

  • 自定义字段筛选:这是安企CMS的强大之处。如果你在内容模型中自定义了字段,例如为“产品”模型添加了“颜色”或“尺寸”字段,并且在后台将这些字段设置为可筛选,那么你就可以通过URL的查询参数(例如 ?color=红色&size=L)来动态筛选内容。

动态交互:文档参数筛选标签 archiveFilters

当我们需要构建一个允许用户自行选择条件来筛选内容(比如房屋类型、商品颜色、价格区间等)的页面时,archiveFilters 标签就派上用场了。它不会直接显示内容,而是生成一系列可点击的筛选链接,这些链接包含了动态变化的筛选参数。

archiveFilters 的基本用法是这样的:

{% archiveFilters filters with moduleId="[模型ID]" allText="[全部文本]" %}
    {% for item in filters %}
        <div class="filter-group">
            <span>{{ item.Name }}:</span>
            <ul>
                {% for val in item.Items %}
                    <li class="{% if val.IsCurrent %}active{% endif %}">
                        <a href="{{ val.Link }}">{{ val.Label }}</a>
                    </li>
                {% endfor %}
            </ul>
        </div>
    {% endfor %}
{% endarchiveFilters %}
  • moduleId:指定你希望为其生成筛选条件的内容模型。
  • allText:设置“全部”或“不限”选项的显示文本,如果设置为 false 则不显示。

这个标签会生成一个 filters 变量,其中包含了每个可筛选字段(item.Name)及其所有可选值(item.Items)。每个可选值都有一个 Label(显示文本)、Link(点击后带筛选参数的URL)和 IsCurrent(判断当前是否选中)。用户点击这些链接后,页面会刷新,archiveList 标签就能根据URL中的新参数显示筛选后的内容。

分页控制:pagination 标签

archiveListtype 参数设置为 page 时,就需要配合 pagination 标签来生成分页导航了。

{% pagination pages with show="5" %}
    <ul class="pagination-list">
        {% if pages.PrevPage %}<li class="prev"><a href="{{ pages.PrevPage.Link }}">上一页</a></li>{% endif %}
        {% for item in pages.Pages %}<li class="{% if item.IsCurrent %}active{% endif %}"><a href="{{ item.Link }}">{{ item.Name }}</a></li>{% endfor %}
        {% if pages.NextPage %}<li class="next"><a href="{{ pages.NextPage.Link }}">下一页</a></li>{% endif %}
    </ul>
{% endpagination %}

show 参数可以控制分页导航中显示页码的数量。

实际应用:构建一个产品列表页

假设我们需要一个产品列表页,可以显示所有产品,并允许用户按“颜色”和“材质”进行筛选,同时支持分页和按最新发布排序。

  1. 在后台配置内容模型和筛选字段

    • 确保有一个“产品”内容模型(moduleId 假设为 2)。
    • 在产品模型中添加自定义字段,例如 color (颜色,类型为单项选择,可选值:红, 蓝, 绿) 和 material (材质,类型为单项选择,可选值:金属, 塑料, 木材),并勾选“可筛选”选项。
  2. 在模板文件中(例如 product/list.html)编写代码

    {% extends "base.html" %}
    
    {% block content %}
        <div class="product-filters">
            <h3>筛选产品</h3>
            {% archiveFilters filters with moduleId="2" 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="{% if val.IsCurrent %}active{% endif %}">
                                    <a href="{{ val.Link }}">{{ val.Label }}</a>
                                </li>
                            {% endfor %}
                        </ul>
                    </div>
                {% endfor %}
            {% endarchiveFilters %}
        </div>
    
        <div class="product-list-container">
            <h2>产品列表</h2>
            {% archiveList products with moduleId="2" type="page" order="id desc" limit="12" %}
                {% for item in products %}
                    <div class="product-item">
                        <a href="{{ item.Link }}">
                            <img src="{{ item.Thumb }}" alt="{{ item.Title }}">
                            <h3>{{ item.Title }}</h3>
                            <p>{{ item.Description }}</p>
                        </a>
                    </div>
                {% empty %}
                    <p>没有找到符合条件的产品。</p>
                {% endfor %}
            {% endarchiveList %}
    
            <div class="pagination-area">
                {% pagination pages with show="5" %}
                    <ul class="pagination-list">
                        {% if pages.PrevPage %}<li class="prev"><a href="{{ pages.PrevPage.Link }}">上一页</a></li>{% endif %}
                        {% for item in pages.Pages %}<li class="{% if item.IsCurrent %}active{% endif %}"><a href="{{ item.Link }}">{{ item.Name }}</a></li>{% endfor %}
                        {% if pages.NextPage %}<li class="next"><a href="{{ pages.NextPage.Link }}">下一页</a></li>{% endif %}
                    </ul>
                {% endpagination %}
            </div>
        </div>
    {% endblock %}
    

通过这样的设置,用户不仅能看到产品的基本列表,还可以根据页面的筛选条件动态地查看不同属性的产品,大大提升了网站的互动性和信息检索效率。安企CMS的模板标签体系灵活且易于理解,稍加实践就能创建出功能丰富的列表页面。

常见问题解答 (FAQ)

  1. 问:如何在同一个页面上显示多种不同条件(例如,最新文章、热门产品、推荐活动)的列表? 答: 您可以在页面中使用多个 archiveList 标签,每个标签设置不同的参数条件。例如,一个 archiveList 用于获取 moduleId="1"order="id desc" 的文章列表,另一个 archiveList 用于获取 moduleId="2"flag="c" 的产品列表。只要为每个 archiveList 标签指定不同的变量名(如 articles, products, activities),它们就可以互不干扰地同时显示在同一个页面上。

  2. 问:我设置了 archiveList 的条件,但页面上没有显示任何内容,可能是什么原因? 答: 首先,请检查 moduleId

相关文章

如何在不同设备上(PC、移动)实现安企CMS内容的自适应显示?

在当今多设备并行的互联网环境中,确保网站内容在不同屏幕尺寸上都能良好显示,是提升用户体验和网站专业度的关键。安企CMS(AnQiCMS)充分考虑了这一需求,提供了多种灵活的策略,帮助用户轻松实现内容在PC端和移动端的自适应显示。 安企CMS的核心设计理念之一便是支持多样化的内容展示,因此它内置了三种主要的网站模式来应对多设备显示挑战:**自适应模式**

2025-11-09

如何通过安企CMS的伪静态功能优化URL显示和SEO?

在网站运营中,网址(URL)的结构不仅影响用户体验,更是搜索引擎优化(SEO)不可忽视的关键环节。一个清晰、有意义的URL地址能让用户更容易理解页面内容,同时也能帮助搜索引擎更好地抓取和索引网站,从而提升网站的可见度和排名。安企CMS(AnQiCMS)深知这一点,因此其伪静态功能成为了优化URL显示和SEO的强大工具。 ### 一、伪静态与SEO:为何如此重要? 动态URL,通常包含问号

2025-11-09

安企CMS网站如何配置和切换多语言内容进行显示?

在全球化日益盛行的今天,让您的网站内容能够以多种语言呈现,是拓展市场、服务不同地区用户的重要一步。安企CMS(AnQiCMS)作为一个高效灵活的内容管理系统,充分考虑了这一需求,提供了多种方案来帮助您轻松配置和切换多语言内容。 接下来,我们将一起探索如何在安企CMS中有效地管理和展示多语言内容。 ### 安企CMS的多语言理念:系统与内容的区分 在安企CMS中,多语言支持主要体现在两个层面

2025-11-09

如何利用安企CMS灵活的内容模型展示多样化的内容结构?

在当今这个内容为王的时代,网站的内容早已不再局限于简单的文章和新闻。从电商产品到活动信息,从客户案例到招聘职位,每一种内容都有其独特的结构和展示需求。如果一个内容管理系统(CMS)只能用单一的“文章”模板来承载所有信息,那无疑会给运营带来巨大的困扰,不仅内容管理效率低下,前端展示也显得千篇一律,难以吸引用户。 AnQiCMS 的核心优势之一,就是它提供了灵活的内容模型功能

2025-11-09

AnQiCMS网站的整体名称和页面标题应如何修改和显示?

在网站运营中,网站的整体名称和各个页面的标题是品牌形象和搜索引擎优化的重要组成部分。它们不仅是访客对网站的第一印象,更是搜索引擎理解网站内容和排名的关键因素。AnQiCMS 作为一款专为内容管理和SEO设计系统,提供了灵活且强大的功能,帮助我们轻松管理和优化这些核心元素。 ### 整体网站名称的设置与考量 首先,我们需要确立网站的整体名称,这通常代表着我们的品牌或企业名称。在AnQiCMS中

2025-11-09

如何自定义AnQiCMS网站的LOGO,使其在前端页面正确展示?

安企CMS提供了一套直观而强大的网站管理功能,其中自定义网站LOGO是品牌形象建设中至关重要的一环。一个清晰、专业的LOGO不仅能增强网站的辨识度,也能为访客留下深刻的第一印象。在AnQiCMS中,更换和管理网站LOGO是一个简单明了的过程,并且能确保它在您的网站前端页面正确展示。 ### 核心功能与位置:网站LOGO设置入口 要在AnQiCMS中自定义网站LOGO

2025-11-09

安企CMS如何配置移动端网站地址,确保内容在手机上适配显示?

在当今移动互联网时代,网站在手机上的显示效果直接关系到用户体验和内容传播效率。对于使用安企CMS(AnQiCMS)的用户来说,确保内容能够在各种移动设备上优雅呈现,是内容运营中不可忽视的一环。安企CMS提供了灵活的配置选项和模板机制,帮助您轻松实现这一目标。 ### 安企CMS的移动适配策略概览 安企CMS在设计之初就考虑到了多终端访问的需求,因此它提供了三种主要的网站模式来适应移动端显示

2025-11-09

如何在AnQiCMS中设置网站的版权信息和备案号,并在页脚统一显示?

在网站运营中,网站底部(页脚)的版权信息和备案号不仅是网站专业性的体现,更是法律合规性的重要组成部分。对于使用 AnQiCMS 搭建的网站来说,设置并统一显示这些信息是一个简单直接的过程。本文将引导您如何在 AnQiCMS 中轻松完成这些配置,让您的网站看起来更专业,更具公信力。 ### 第一步:在 AnQiCMS 后台设置版权信息和备案号 AnQiCMS 提供了一个集中的管理界面

2025-11-09