当您管理网站内容时,如何有效地组织和展示文档列表,使其既符合用户习惯又能突出重点,是一个非常关键的环节。安企CMS(AnQiCMS)提供了灵活而强大的功能,让您能够轻松实现文档内容的多种排序和筛选,无论是按最新发布、最受欢迎还是其他自定义方式。
在 AnqiCMS 中,文档列表的灵活展示主要通过强大的 archiveList 模板标签来实现。这个标签是您获取和控制内容列表的核心工具,通过为其配置不同的参数,您就能定义内容的排序规则、筛选条件以及显示数量等。
实现按最新内容排序
当您希望用户首先看到网站上最新发布的内容时,可以使用 archiveList 标签的 order 参数并设置为 id desc。这里的 id 指的是文档的唯一标识符,通常与内容的发布时间呈正相关,desc 表示降序排列,即 ID 值越大(通常意味着发布越晚)的内容排在越前面。
例如,要在首页或其他页面显示最新的 10 篇文章,您可以这样编写模板代码:
{% archiveList archives with type="list" limit="10" order="id desc" %}
{% for item in archives %}
<div class="article-item">
<a href="{{ item.Link }}">{{ item.Title }}</a>
<span>发布时间: {{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
</div>
{% endfor %}
{% endarchiveList %}
实现按最热内容排序
要突出网站上最受用户欢迎或阅读量最高的内容,您可以通过 order="views desc" 参数来实现。views 代表文档的浏览量,设置为 desc 后,浏览量越高的文档将优先展示。这对于发现热门话题或推广重要内容非常有效。
例如,显示最受欢迎的 5 篇文章:
{% archiveList archives with type="list" limit="5" order="views desc" %}
{% for item in archives %}
<div class="hot-article-item">
<a href="{{ item.Link }}">{{ item.Title }}</a>
<span>浏览量: {{ item.Views }}</span>
</div>
{% endfor %}
{% endarchiveList %}
实现自定义排序
除了系统内置的最新和最热排序,AnqiCMS 还允许您通过后台手动设置文档的显示顺序。这通常通过 order="sort desc" 来实现。当您在后台管理文档时,可以为每个文档设置一个“显示顺序”值,系统会根据这个值进行排序。这对于需要人工干预来突出特定内容的场景非常有用,例如推荐文章或专题。
在模板中调用时,您可以这样使用:
{% archiveList archives with type="list" limit="8" order="sort desc" %}
{% for item in archives %}
<div class="featured-article-item">
<a href="{{ item.Link }}">{{ item.Title }}</a>
</div>
{% endfor %}
{% endarchiveList %}
结合多种条件进行筛选与排序
AnqiCMS 的强大之处在于您可以将这些排序规则与多种筛选条件结合起来,创建出高度定制化的内容列表。archiveList 标签支持多种筛选参数,例如:
categoryId: 根据特定分类的 ID 来筛选内容。flag: 根据文档的推荐属性(如头条、推荐、幻灯等)来筛选。q: 根据搜索关键词来筛选。type="page": 如果您需要分页显示内容,则必须设置此参数,并结合pagination标签使用。
例如,在一个特定分类(ID 为 10)下,显示最新的推荐文章,并进行分页展示:
{% archiveList archives with type="page" categoryId="10" flag="c" order="id desc" limit="10" %}
{% for item in archives %}
<div class="category-recommended-item">
<h3><a href="{{ item.Link }}">{{ item.Title }}</a></h3>
<p>{{ item.Description|truncatechars:100 }}</p>
</div>
{% empty %}
<p>该分类下暂无推荐文章。</p>
{% endfor %}
{% endarchiveList %}
<div class="pagination-container">
{% pagination pages with show="5" %}
{# 这里可以放置分页链接的代码,例如:#}
{% if pages.PrevPage %}<a href="{{ pages.PrevPage.Link }}">上一页</a>{% endif %}
{% for item in pages.Pages %}<a href="{{ item.Link }}" class="{% if item.IsCurrent %}active{% endif %}">{{ item.Name }}</a>{% endfor %}
{% if pages.NextPage %}<a href="{{ pages.NextPage.Link }}">下一页</a>{% endif %}
{% endpagination %}
</div>
除了 archiveList,如果您需要更复杂的、基于内容模型自定义字段的筛选功能,archiveFilters 标签也能派上用场。它能帮助您生成筛选条件组,例如在房地产网站中按“户型”或“面积”筛选,然后在此基础上再应用排序。
总结
通过灵活运用 archiveList 标签及其 order 参数,您可以根据网站运营需求,轻松调整内容列表的展示方式。无论是追求时效性的“最新”,还是强调用户关注度的“最热”,亦或是精细化运营的“自定义排序”,AnqiCMS 都提供了直观且易于操作的解决方案。这些功能的结合,将极大地提升网站内容的组织效率和用户访问体验。
常见问题 (FAQ)
1. 我是否可以在同一个页面上显示不同排序规则的文档列表?
是的,完全可以。您只需要在模板文件中使用多个 archiveList 标签,并为每个标签配置不同的 order 参数和 limit 参数即可。例如,一个列表显示最新文章,另一个列表显示最热文章。
2. 除了最新和最热,AnqiCMS 还有哪些内置的排序方式?
AnqiCMS 内置支持按照文档 ID 降序(id desc,通常代表最新发布),浏览量降序(views desc,代表最热),以及后台自定义排序(sort desc)。自定义排序的值需要在 AnqiCMS 后台编辑文档时手动设定。
3. 我修改了模板中的排序规则,为什么前台页面没有立即生效? 这通常是由于网站缓存导致的。在 AnqiCMS 后台,您可以找到“更新缓存”功能,点击清理缓存后,前台页面就会显示最新的排序效果。此外,浏览器缓存也可能影响显示,建议在清理网站缓存后,也尝试清空浏览器缓存或使用无痕模式访问。