在安企CMS的模板系统中,archiveList 标签是您构建动态内容列表的核心工具。无论是博客的文章列表、产品展示页面,还是新闻资讯模块,archiveList 都能帮助您根据多样化的需求,精确地筛选、排序并呈现内容,让您的网站内容区域焕发生机。
archiveList 的基础:理解它的工作方式
使用 archiveList 标签时,您首先需要定义一个变量来接收获取到的文章数据,例如 archives。然后通过 for 循环遍历这个变量,将每篇文章的详细信息展示出来。基本的结构通常是这样的:
{% archiveList archives with type="list" limit="10" %}
{% for item in archives %}
<!-- 在这里展示每篇文章的信息,例如标题、链接、简介等 -->
<a href="{{item.Link}}">{{item.Title}}</a>
<p>{{item.Description}}</p>
{% empty %}
<!-- 如果没有找到文章,将显示这里的内容 -->
<p>暂时没有相关内容。</p>
{% endfor %}
{% endarchiveList %}
这里,type="list" 表示我们希望获取一个普通列表,limit="10" 则限制了显示的文章数量。{% empty %} 标签是一个非常实用的特性,当列表为空时,您可以优雅地显示一条提示信息,而不是让页面留白。
精准定位:根据分类筛选文章
在许多场景下,我们可能需要展示特定分类下的文章,比如“公司新闻”或“行业动态”。archiveList 标签通过 moduleId 和 categoryId 参数,可以非常方便地实现这一需求。
首先,moduleId 参数用于指定您要获取内容的模型类型,例如文章模型(通常 moduleId="1")或产品模型(通常 moduleId="2")。这是基础,确保您在正确的模型下操作。
接着,categoryId 参数允许您指定一个或多个分类的ID。如果您想获取 ID 为 5 的分类下的文章,可以这样设置:
{% archiveList archives with moduleId="1" categoryId="5" limit="10" %}
<!-- 展示文章列表 -->
{% endarchiveList %}
如果您想同时获取多个分类的文章,比如 ID 为 5 和 8 的分类,只需用逗号将它们隔开:categoryId="5,8"。
此外,如果您只想显示当前分类的文章,而不包括其子分类的内容,可以使用 child="false" 参数:
{% archiveList archives with moduleId="1" categoryId="5" child="false" limit="10" %}
<!-- 仅显示ID为5的分类下的文章,不包含子分类文章 -->
{% endarchiveList %}
通过这些参数的组合,您可以灵活地控制文章的来源。
突出重点:利用推荐属性显示特定内容
安企CMS的后台允许您为文章设置多种推荐属性,如“头条[h]”、“推荐[c]”、“幻灯[f]”等。这些属性在网站运营中非常有用,可以帮助您在特定区域突出显示重要内容。archiveList 标签通过 flag 参数,能够轻松地筛选出具有这些属性的文章。
例如,要在首页的某个模块显示“推荐”文章,您可以这样使用 flag="c":
{% archiveList archives with moduleId="1" flag="c" limit="5" %}
<!-- 展示5篇推荐文章 -->
{% endarchiveList %}
如果您想在文章列表中同时显示文章的推荐属性标识,例如显示一个“推荐”或“头条”的图标,可以在 archiveList 标签中设置 showFlag="true"。然后在 for 循环内部通过 {{item.Flag}} 来获取文章的推荐属性代码,并根据这些代码做相应的样式或图标处理。
{% archiveList archives with moduleId="1" showFlag="true" limit="5" %}
{% for item in archives %}
<h3>
<a href="{{item.Link}}">{{item.Title}}</a>
{% if item.Flag == 'h' %}<span class="flag-headline">头条</span>{% endif %}
{% if item.Flag == 'c' %}<span class="flag-recommend">推荐</span>{% endif %}
</h3>
{% endfor %}
{% endarchiveList %}
这样,带有“头条”或“推荐”属性的文章就能在页面上醒目地展示出来。
秩序井然:实现文章的自定义排序
文章的排序方式直接影响用户的阅读体验。archiveList 标签提供了多种 order 参数值,让您可以根据实际需求调整文章的排列顺序。
最常用的排序方式包括:
id desc:按照文章ID降序排列,通常意味着最新发布的文章在前。views desc:按照文章浏览量降序排列,通常显示最热门的文章。sort desc:按照后台自定义的“显示顺序”字段降序排列。这意味着您可以在后台手动调整文章的顺序,非常适合手动管理推荐内容。
例如,如果您想在某个区域显示最新发布的文章,并限制数量为8篇,可以这样写:
{% archiveList archives with moduleId="1" order="id desc" limit="8" %}
<!-- 展示8篇最新文章 -->
{% endarchiveList %}
而要展示网站中最受欢迎的文章,则可以按浏览量排序:
{% archiveList archives with moduleId="1" order="views desc" limit="10" %}
<!-- 展示10篇最热门文章 -->
{% endarchiveList %}
融会贯通:多种条件组合使用
archiveList 标签的真正强大之处在于其参数可以灵活组合。您可以同时使用 moduleId、categoryId、flag 和 order 来构建非常精确的文章列表。
例如,获取 ID 为 5 的分类下,带有“推荐”属性的,且按浏览量从高到低排序的前10篇文章:
{% archiveList archives with moduleId="1" categoryId="5" flag="c" order="views desc" limit="10" %}
<!-- 展示特定分类下推荐且热门的文章 -->
{% for item in archives %}
<h4><a href="{{item.Link}}">{{item.Title}}</a></h4>
<p>浏览量: {{item.Views}}</p>
{% endfor %}
{% endarchiveList %}
您还可以利用 excludeCategoryId 和 excludeFlag 参数来排除特定的分类或推荐属性,进一步精细化您的内容筛选。
###