安QiCMS以其灵活高效的内容管理能力,为运营者提供了丰富的工具来组织和展示网站内容。其中,“推荐属性”(Flag)就是一项非常实用的功能,它让您可以轻松地对文章进行分类标记,进而在网站前端实现内容的精准筛选和动态展示。本文将详细介绍如何在AnQiCMS中利用这些推荐属性,过滤并显示您想要的特定文章列表。
深入理解AnQiCMS的推荐属性(Flag)
AnQiCMS的推荐属性,顾名思义,是给文章打上的一种特殊标记,用于指示文章的某种特性或重要程度。这些属性在您编辑文章时可以灵活设置,它们就像是文章的“标签”或“状态”,帮助您在前端模板中实现精细化的内容呈现。
在AnQiCMS的后台“添加文档”界面,您会看到“推荐属性”这一项。它提供了一系列预设的属性及其对应的单字母标识:
- 头条 [h]: 通常用于网站首页最重要、最受关注的文章。
- 推荐 [c]: 指示该文章是编辑推荐的优质内容。
- 幻灯 [f]: 适用于在幻灯片或轮播图中展示的文章。
- 特荐 [a]: 具有特殊推荐价值的文章。
- 滚动 [s]: 适合在滚动新闻或公告区域显示的内容。
- 加粗 [h]: (注意:此标识与“头条”属性相同,可能用于视觉强调,具体取决于模板实现)
- 图片 [p]: 表明该文章拥有高质量的图片,适合图片展示区域。
- 跳转 [j]: 通常用于文章点击后会跳转到外部链接的情况。
您可以为每篇文章选择一个或多个推荐属性,也可以不选择。这些灵活的标记是我们在前端模板中进行内容筛选的核心依据。
在模板中运用推荐属性筛选文章列表
要在AnQiCMS的前端模板中根据推荐属性过滤显示文章列表,我们主要会用到archiveList这个强大的模板标签。
archiveList标签提供了flag和excludeFlag两个参数,专门用于处理推荐属性的筛选需求。
1. 筛选特定推荐属性的文章
如果您希望只显示带有某个特定推荐属性的文章,例如只显示“推荐”属性([c])的文章,可以这样使用archiveList标签:
{% archiveList recommendedArticles with flag="c" limit="10" %}
{% for item in recommendedArticles %}
<li>
<a href="{{item.Link}}">
<h5>{{item.Title}}</h5>
<p>{{item.Description}}</p>
</a>
</li>
{% empty %}
<li>当前没有推荐文章。</li>
{% endfor %}
{% endarchiveList %}
在这段代码中:
archiveList recommendedArticles:我们定义了一个变量recommendedArticles来存储筛选出的文章列表。flag="c":这是关键。它告诉AnQiCMS只获取那些被标记为“推荐”属性的文章。limit="10":限制只显示最新的10篇文章。您可以根据需要调整这个数字。
需要注意的是,根据AnQiCMS的文档说明,flag参数一次只能指定一个推荐属性的字符(如"c"、"f"),用于“选择”性地显示文章。
2. 排除特定推荐属性的文章
有时您可能希望显示某个分类下的所有文章,但排除掉其中具有特定推荐属性的文章,例如排除“幻灯”属性([f])的文章。这时,excludeFlag参数就派上用场了。
{% archiveList regularArticles with categoryId="1" excludeFlag="f" limit="5" %}
{% for item in regularArticles %}
<li>
<a href="{{item.Link}}">
<h4>{{item.Title}}</h4>
</a>
</li>
{% empty %}
<li>当前没有符合条件的文章。</li>
{% endfor %}
{% endarchiveList %}
在这个例子中:
categoryId="1":指定只在ID为1的分类下筛选文章。excludeFlag="f":将排除所有被标记为“幻灯”属性的文章,即使它们属于指定分类。- 与
flag参数不同,excludeFlag参数可以接受多个推荐属性字符,用逗号隔开,例如excludeFlag="f,s"表示同时排除“幻灯”和“滚动”属性的文章。
3. 结合其他参数实现更精确的筛选
flag和excludeFlag参数可以与archiveList标签的其他参数灵活组合,以满足更复杂的筛选需求,例如:
- 按模型筛选 (
moduleId):如果您想在产品模型中筛选“推荐”产品,可以添加moduleId="2"(假设产品模型的ID为2)。 - 按分类筛选 (
categoryId):正如上面示例所示,可以限定在特定分类中进行属性筛选。 - 按排序方式 (
order):可以结合order="views desc"显示带有特定属性且浏览量最高的文章。 - 分页显示 (
type="page"):如果筛选出的文章数量较多,可以配合分页功能来展示。
例如,显示文章模型(ID为1)中分类ID为5的最新5篇“头条”文章:
{% archiveList headlineNews with moduleId="1" categoryId="5" flag="h" order="id desc" limit="5" %}
{% for item in headlineNews %}
<div class="headline-item">
<img src="{{item.Thumb}}" alt="{{item.Title}}">
<h3><a href="{{item.Link}}">{{item.Title}}</a></h3>
<span>发布日期: {{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
</div>
{% endfor %}
{% endarchiveList %}
实战案例:定制你的内容展示
设想您的网站首页有一个“精选推荐”区域,需要显示编辑特别推荐的几篇文章;同时,在文章列表页的侧边栏,您希望展示一些热门文章,但不想让首页的幻灯片文章重复出现。
案例一:首页精选推荐区
”`twig
<h2>精选推荐</h2>
<div class="articles-grid">
{% archiveList featured with moduleId="1" flag="c" limit="4" %}
{% for item in featured %}
<article class="recommend-card">
<a href="{{item.Link}}">
{% if item.Logo %}<img src="{{item.Logo}}" alt="{{item.Title}}">{% endif %}