如何在前端显示文章列表,并支持按内容模型、分类、推荐属性等多种条件筛选?

📅 👁️ 86

安企CMS为网站内容提供了极高的灵活性,无论是展示文章、产品还是其他自定义内容,都能轻松应对。当我们需要在网站前端显示一个内容列表,并且允许用户根据内容模型、分类、推荐属性等多种条件进行筛选时,安企CMS提供了非常直观且强大的模板标签来实现这些功能。

灵活定制内容的列表展示,不仅能提升用户体验,还能有效帮助访问者快速找到他们感兴趣的信息。在安企CMS中,实现这一目标的核心利器就是强大的archiveList标签,它配合一系列参数,可以帮助我们构建出各种复杂且实用的内容列表。

archiveList标签:内容列表的基石

archiveList标签是我们在前端调用文章、产品或其他文档列表的主要方式。它的基本用法是包裹在{% archiveList ... %}{% endarchiveList %}之间,通过for循环遍历获取到的数据。例如,要显示最近发布的五篇文章,可以这样写:

{% archiveList archives with type="list" limit="5" %}
    {% for item in archives %}
        <div class="article-item">
            <a href="{{item.Link}}">
                <img src="{{item.Thumb}}" alt="{{item.Title}}" />
                <h3>{{item.Title}}</h3>
                <p>{{item.Description}}</p>
                <span>发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                <span>阅读量:{{item.Views}}</span>
            </a>
        </div>
    {% empty %}
        <p>目前还没有内容发布。</p>
    {% endfor %}
{% endarchiveList %}

这里,archives是我们自定义的变量名,用于存储获取到的内容列表。type="list"表示我们想要一个简单的列表,而不是分页列表,而limit="5"则限制了显示数量。

按内容模型筛选内容

安企CMS的“内容模型”功能让我们能根据业务需求自定义不同的内容结构,例如文章、产品、案例等。要在前端显示特定内容模型下的列表,可以使用moduleId参数。

假设“文章模型”的moduleId是1,“产品模型”的moduleId是2。如果我们只想显示“文章模型”下的内容:

{% archiveList articles with type="list" moduleId="1" limit="10" %}
    {# 循环并展示文章内容 #}
{% endarchiveList %}

如果想显示“产品模型”下的内容:

{% archiveList products with type="list" moduleId="2" limit="8" %}
    {# 循环并展示产品内容 #}
{% endarchiveList %}

通过后台的“内容管理”->“内容模型”页面,你可以查看或自定义每个内容模型的ID和名称。

按分类筛选内容列表

网站内容通常会被组织成不同的分类。categoryId参数允许我们指定显示某个或某几个分类下的内容。

例如,要显示ID为1的分类下的所有文章:

{% archiveList catArticles with type="page" categoryId="1" limit="10" %}
    {# 循环并展示该分类下的文章 #}
{% endarchiveList %}

如果想显示多个分类(比如ID为1和3)的内容,可以这样写:

{% archiveList multiCatArticles with type="page" categoryId="1,3" limit="10" %}
    {# 循环并展示多个分类下的文章 #}
{% endarchiveList %}

在一个分类列表页中,如果想自动获取当前分类下的文章,则可以省略categoryId参数,archiveList标签会自动识别当前页面的分类ID。如果你想获取所有顶级分类下的文章(不限具体分类),可以将categoryId设置为0

按推荐属性筛选内容

安企CMS提供了“推荐属性”功能,允许我们给文章打上“头条[h]”、“推荐[c]”、“幻灯[f]”等标签。这些属性非常适合在首页或特定区域展示重要内容。flag参数就是用来筛选这些推荐内容的。

例如,要显示被标记为“推荐”的文章:

{% archiveList recommendedArticles with type="list" flag="c" limit="5" %}
    {# 循环并展示推荐文章 #}
{% endarchiveList %}

如果想显示“头条”内容,就将flag参数改为flag="h"。这些推荐属性可以在后台“内容管理”->“发布文档”页面进行设置。

关键词搜索与分页

用户在网站上进行搜索时,我们通常会将搜索关键词通过URL参数(例如?q=搜索词)传递。archiveList标签在type="page"模式下,会自动读取URL中的q参数作为搜索关键词。结合pagination标签,可以轻松实现带分页的搜索结果列表。

首先,在搜索页面(通常是search/index.html模板),你需要一个搜索表单:

<form method="get" action="/search">
    <input type="text" name="q" placeholder="请输入关键词" value="{{urlParams.q}}" />
    <button type="submit">搜索</button>
</form>

接着,在搜索结果区域使用archiveListpagination

{% archiveList searchResults with type="page" limit="10" %}
    {% for item in searchResults %}
        <div class="search-result-item">
            <a href="{{item.Link}}">
                <h3>{{item.Title}}</h3>
                <p>{{item.Description}}</p>
            </a>
        </div>
    {% empty %}
        <p>没有找到相关内容。</p>
    {% endfor %}
{% endarchiveList %}

<div class="pagination-area">
    {% pagination pages with show="5" %}
        {# 分页链接的渲染 #}
        {% if pages.PrevPage %}<a href="{{pages.PrevPage.Link}}">上一页</a>{% endif %}
        {% for pageItem in pages.Pages %}
            <a class="{% if pageItem.IsCurrent %}active{% endif %}" href="{{pageItem.Link}}">{{pageItem.Name}}</a>
        {% endfor %}
        {% if pages.NextPage %}<a href="{{pages.NextPage.Link}}">下一页</a>{% endif %}
    {% endpagination %}
</div>

这里,urlParams.q会自动获取当前URL中的q参数值,用于显示搜索框中的默认关键词。

结合自定义字段进行高级筛选

安企CMS的“内容模型”不仅允许我们定义文章标题、内容等通用字段,还可以为每个模型添加独特的“自定义字段”。例如,为“产品模型”添加“颜色”、“尺寸”等字段。要在前端实现这些自定义字段的筛选,就需要用到archiveFilters标签和URL查询参数。

archiveFilters标签会根据你后台内容模型中配置的可筛选字段,自动生成筛选条件和对应的URL链接。

假设你在产品模型中定义了“颜色”和“尺寸”作为自定义字段:

{# 生成筛选条件 #}
<div>
    <h3>筛选条件:</h3>
    {% archiveFilters filters with moduleId="2" allText="不限" %}
        {% for filterItem in filters %}
            <p>{{filterItem.Name}}:</p>
            <ul>
                {% for option in filterItem.Items %}
                    <li class="{% if option.IsCurrent %}active{% endif %}">
                        <a href="{{option.Link}}">{{option.Label}}</a>
                    </li>
                {% endfor %}
            </ul>
        {% endfor %}
    {% endarchiveFilters %}
</div>

{# 根据筛选条件显示产品列表 #}
{% archiveList products with type="page" moduleId="2" limit="9" %}
    {% for item in products %}
        <div class="product-item">
            <h4>{{item.Title}}</h4>
            <p>颜色: {{item.color}}</p> {# 假设自定义字段名为color #}
            <p>尺寸: {{item.size}}</p> {# 假设自定义字段名为size #}
        </div>
    {% endfor %}
{% endarchiveList %}

<div class="pagination-area">
    {% pagination pages with show="5" %}{# ...分页代码... #}{% endpagination %}
</div>

在上面的例子中,archiveFilters会生成类似于/products?color=红色/products?color=红色&size=L这样的筛选链接。archiveList标签在type="page"模式下,会智能地读取这些URL查询参数,并进行相应的筛选。自定义字段的值可以直接通过{{item.自定义字段名}}的方式

相关文章

AnQiCMS的内容模型自定义字段如何在前端模板中被灵活调用和显示?

在AnQiCMS中,内容模型的自定义字段为我们的网站内容管理带来了极大的灵活性,它允许我们根据不同业务需求,为文章、产品、活动等内容类型添加独有的属性。但仅仅在后台创建这些字段是不够的,如何将它们灵活地呈现在网站前端,让访客看到这些定制化的信息,才是内容运营的关键。 接下来,我们将深入探讨AnQiCMS的内容模型自定义字段如何在前端模板中被灵活调用和显示,帮助您充分利用这一强大功能。 ###

2025-11-08

如何为分类页面设置Banner图和缩略图,并在前端进行轮播或列表展示?

在网站运营中,为分类页面添加吸引人的视觉元素,比如Banner图和缩略图,是提升用户体验和网站专业度的重要一步。安企CMS(AnQiCMS)作为一个高效、灵活的内容管理系统,充分考虑了这些需求,让您可以轻松地为分类页面设置并展示这些图片。 本文将引导您如何在安企CMS后台为分类页面配置Banner图和缩略图,并分享在网站前端模板中将它们轮播或列表展示的实用方法。 --- ### 第一步

2025-11-08

分类页面如何自定义SEO标题、关键词、描述和URL显示,以优化分类页表现?

在网站运营中,分类页面扮演着至关重要的角色,它们不仅是用户浏览内容、探索网站结构的关键入口,更是搜索引擎理解网站主题、分配权重的核心节点。有效优化分类页面的SEO表现,能够显著提升网站的整体可见度和用户体验。安企CMS(AnQiCMS)为用户提供了强大而灵活的工具,让分类页面的SEO标题、关键词、描述和URL结构可以得到细致的自定义和优化。 ### 一、分类页SEO

2025-11-08

AnQiCMS如何确保文章内容(包括Markdown、数学公式、流程图)在前端的正确渲染和显示?

在当今内容创作日益丰富多元的时代,我们经常需要在网站上呈现不仅仅是纯文本,还包括格式多样的Markdown文档、复杂的数学公式以及直观的流程图。作为网站运营者,我们最关心的问题莫过于这些内容的输入是否便捷,以及它们在前端是否能够被正确、美观地渲染和显示。安企CMS(AnQiCMS)在这方面提供了一套高效且灵活的解决方案。 ###

2025-11-08

AnQiCMS如何实现文章列表的分页显示,并自定义分页导航的样式和逻辑?

AnQiCMS 作为一个高效灵活的内容管理系统,在处理文章列表和分页显示方面提供了直观而强大的功能,让内容呈现既贴合用户需求,又能满足各种自定义场景。如果您正在使用 AnQiCMS 构建网站,并希望实现文章列表的分页功能,同时精细化控制分页导航的样式和逻辑,那么以下内容将为您详细解读其实现方式。 ### 核心功能:文章列表与分页标签的联动 在 AnQiCMS 中

2025-11-08

图片资源管理在AnQiCMS中如何影响前端图片的显示质量和加载速度?

在运营网站的过程中,图片扮演着至关重要的角色。它们不仅是内容呈现的一部分,更是影响用户体验和网站性能的关键因素。安企CMS(AnQiCMS)在图片资源管理方面提供了一系列实用的功能,这些功能直接关系到我们网站前端图片的显示质量和加载速度。深入了解并善用这些工具,能帮助我们构建一个既美观又高效的网站。 ### 为什么图片管理对网站至关重要? 网站的加载速度是用户体验的基石

2025-11-08

如何为单页面(如“关于我们”、“联系我们”)配置独立的模板、SEO信息和内容显示?

在运营网站时,一些看似简单的单页面,如“关于我们”、“联系我们”或“服务条款”,它们承载着网站的品牌形象、信任背书和用户转化入口。为这些页面精心设计独立的视觉风格、优化其搜索引擎(SEO)信息并灵活展示内容,是提升用户体验和网站专业度的关键。AnQiCMS 提供了强大且灵活的功能,让您能够轻松实现这些需求。 ### 核心功能:为单页面定制专属体验 首先,我们来了解如何在 AnQiCMS

2025-11-08

AnQiCMS如何设置并显示网站的全局联系方式(电话、地址、邮箱、社交媒体等)?

在网站运营中,清晰、便捷的联系方式是构建信任、促进沟通的关键。无论是电话、地址、邮箱,还是日益重要的社交媒体渠道,这些信息都需要在您的网站上醒目且一致地展示。AnQiCMS深知这一点,因此提供了一个直观且集中的方式来管理网站的全局联系信息,让您的访客无论何时何地都能轻松找到您。 ### 在AnQiCMS后台设置您的全局联系信息 AnQiCMS将联系方式的设置集中在一处,方便您统一管理和更新

2025-11-08