在运营网站时,我们常常需要突出某些重要或推荐的内容,例如将最新消息置于“头条”,或将热门产品标记为“推荐”。AnQiCMS 提供了一套灵活的推荐属性功能,让您可以轻松筛选并展示这些特定内容,从而更好地引导用户浏览和提升内容价值。
理解推荐属性及其作用
AnQiCMS 中的推荐属性,可以看作是内容的一种特殊标签,用于标记其在网站上的重要性和展示方式。这些属性种类丰富,例如:
- 头条 [h]:通常用于网站最重要、最受关注的内容。
- 推荐 [c]:泛指需要向用户特别推荐的内容。
- 幻灯 [f]:常用于轮播图或焦点图区域的内容。
- 特荐 [a]:具有特殊价值或长期推荐的内容。
- 滚动 [s]:适用于在滚动区域(如公告栏)显示的内容。
- 图片 [p]:表示内容中含有重要图片,适合图片列表展示。
- 跳转 [j]:点击后直接跳转到外部链接而非内容详情页。
这些属性并非互斥,您可以在后台为一个文档同时选择多个推荐属性。例如,一篇重要文章可以同时设置为“头条”和“图片”。通过灵活运用这些属性,您可以让网站内容呈现出更丰富的层次感和动态性。
在 AnQiCMS 后台设置推荐属性:
当您在后台创建或编辑文档时,会发现一个名为“推荐属性”的设置项。这里以文章为例,在“内容管理”模块下进入“发布文档”或编辑现有文档的界面。在文档编辑界面的中部,通常会有一个“推荐属性”的选择区域。您可以根据内容的重要性,勾选一个或多个对应的属性。保存文档后,这些属性就会生效,等待在前端模板中被调用。
在模板中调用特定推荐内容
要在网站前端显示这些带有特定推荐属性的内容,我们需要在模板文件中使用 AnQiCMS 提供的 archiveList 标签。这个标签功能强大,能够根据多种条件筛选并输出内容列表。
要根据推荐属性筛选内容,关键在于 archiveList 标签的 flag 参数。您只需要将所需推荐属性对应的字母代码赋值给 flag 参数即可。例如,若要显示“头条”内容,则设置为 flag="h";若要显示“推荐”内容,则设置为 flag="c"。
除了 flag 参数,您还可以结合其他参数来更精确地控制内容的显示:
moduleId:指定内容的模型 ID。例如,moduleId="1"通常代表文章模型,moduleId="2"代表产品模型。这确保您筛选的是特定类型的内容。categoryId:指定内容的分类 ID。如果您想在某个特定分类下显示推荐内容,可以使用此参数。例如,categoryId="3"将只显示 ID 为 3 的分类下的推荐内容。limit:控制显示内容的数量。例如,limit="5"将最多显示 5 条内容。order:定义内容的排序方式。常见的选项包括id desc(按发布时间倒序,即最新发布)、views desc(按浏览量倒序,即最热门)。
需要注意的是,在单个 archiveList 标签中,您一次只能使用一个推荐属性进行筛选。如果您需要显示多种推荐属性的内容,可以分别使用多个 archiveList 标签进行调用。
模板代码示例与解析
下面通过两个具体示例,演示如何在 AnQiCMS 模板中根据推荐属性筛选并显示内容列表。
示例一:在首页展示 5 条最新的“头条”文章
假设您的网站首页有一个“最新头条”区域,您希望显示最新的 5 篇被标记为“头条”的文章。
{# 首页热门头条文章区域 #}
<div class="homepage-headlines">
<h2>最新头条</h2>
<ul class="article-list">
{% archiveList headlines with moduleId="1" flag="h" limit="5" order="id desc" %}
{% for item in headlines %}
<li class="article-item">
<h3><a href="{{ item.Link }}">{{ item.Title }}</a></h3>
<p class="description">{{ item.Description|truncatechars:100 }}</p> {# 截取前100个字符作为简介 #}
<span class="publish-date">发布时间:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
</li>
{% empty %}
<li class="no-content">暂无头条文章可供显示。</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
代码解析:
{% archiveList headlines with ... %}:这是核心标签,headlines是您为获取到的内容列表定义的变量名。moduleId="1":指定我们要获取的是文章模型(假设文章模型的 ID 为 1)的内容。flag="h":精确筛选出所有被标记为“头条”属性的内容。limit="5":限制最多显示 5 篇文章。order="id desc":按照文章的 ID 倒序排列,通常意味着显示最新发布的文章。{% for item in headlines %}:遍历headlines变量中的每一篇文章。{{ item.Link }}:获取文章的链接。{{ item.Title }}:获取文章的标题。{{ item.Description|truncatechars:100 }}:获取文章的描述,并使用truncatechars过滤器截取前 100 个字符。{{ stampToDate(item.CreatedTime, "2006-01-02") }}:将文章的创建时间戳格式化为“年-月-日”的字符串。{% empty %}:这是一个非常实用的标签,当archiveList没有找到符合条件的内容时,会显示{% empty %}块中的内容,避免页面空白或报错。
示例二:在产品分类页侧边栏展示 4 款“推荐”产品
假设您的某个产品分类页面侧边栏,需要展示 4 款被标记为“推荐”的产品,并且这些产品应属于当前分类,按浏览量从高到低排序。
”`twig {# 产品分类页侧边栏推荐产品 #}