如何按浏览量或发布时间对安企CMS的文档列表进行排序?

📅 👁️ 71

在构建和运营网站时,如何有效地组织和呈现内容是提升用户体验和内容发现效率的关键。对于使用安企CMS(AnQiCMS)的朋友来说,灵活地对文档列表进行排序是一项非常实用的功能。无论是希望访客优先看到最热门的文章,还是最新的动态,AnQiCMS都提供了简洁而强大的方式来实现。

通常,当我们想要展示一系列文档时,例如博客文章、产品介绍或新闻列表,我们会希望它们能够按照特定的逻辑顺序排列。最常见的需求便是按照文档的浏览量(热门程度)或者发布时间(最新程度)进行排序。安企CMS为此提供了专门的模板标签,让您可以轻松地在网站前端实现这些排序逻辑。

核心工具:archiveList 文档列表标签

在安企CMS的模板体系中,archiveList 标签是用于获取文档列表的核心工具。它功能强大,可以通过各种参数来筛选、限制和排序您想要展示的文档。所有的排序逻辑,都将围绕这个标签的 order 参数展开。

这个标签的基本使用形式是这样的:

{% archiveList 变量名称 with 参数="值" %}
    {# 在这里循环显示文档内容 #}
{% endarchiveList %}

其中,变量名称 可以是您自定义的一个名称,例如 archives,用于在循环中引用每一篇文档。参数 则是控制文档列表行为的关键。

排序方式一:按浏览量(Views)排序

如果您的目标是让访客一眼就能看到网站上最受欢迎、被阅读次数最多的内容,那么按照浏览量降序排列是一个非常好的选择。安企CMS的 archiveList 标签提供了 views desc 这个参数值,用于实现这一功能。desc 表示降序排列,即从高到低。

例如,要在您的网站首页或者特定分类页显示10篇浏览量最高的文章,您可以这样编写模板代码:

<div class="most-popular-articles">
    <h2>热门文章</h2>
    <ul>
        {% archiveList archives with type="list" order="views desc" limit="10" %}
            {% for item in archives %}
            <li>
                <a href="{{ item.Link }}" title="{{ item.Title }}">
                    <h3>{{ item.Title }}</h3>
                    <p>浏览量:{{ item.Views }}</p>
                </a>
            </li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</div>

在这段代码中:

  • type="list" 表示我们获取的是一个普通列表,而不是用于分页的列表。
  • order="views desc" 明确指定了按文档的浏览量(Views)进行降序排序。
  • limit="10" 则限制了只显示前10篇最热门的文章。
  • for 循环内部,item.Link 获取文档链接,item.Title 获取文档标题,item.Views 则显示文档的浏览量。

通过这样的设置,您的网站将动态地展示那些最吸引访客目光的内容。

排序方式二:按发布时间(CreatedTime)排序

对于新闻动态、最新产品发布或时效性较强的内容,我们更倾向于按照发布时间从新到旧的顺序展示,让访客能够及时了解到最新信息。在安企CMS中,文档的 Id 通常是自动递增的,因此按照 id desc 进行排序,能够很有效地实现按发布时间从新到旧的排列。

要展示最新的文档,您可以这样修改 archiveList 标签:

<div class="latest-articles">
    <h2>最新动态</h2>
    <ul>
        {% archiveList archives with type="list" order="id desc" limit="5" %}
            {% for item in archives %}
            <li>
                <a href="{{ item.Link }}" title="{{ item.Title }}">
                    <h3>{{ item.Title }}</h3>
                    <p>发布时间:{{ stampToDate(item.CreatedTime, "2006-01-02 15:04") }}</p>
                </a>
            </li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</div>

在这里:

  • order="id desc" 告诉系统按照文档的ID降序排列,由于ID通常是按文档创建顺序分配的,这相当于实现了按最新发布时间排序。
  • item.CreatedTime 获取文档的创建时间,它是一个时间戳。
  • stampToDate(item.CreatedTime, "2006-01-02 15:04") 是一个非常有用的辅助函数,它能将时间戳格式化为我们更容易阅读的日期时间字符串。"2006-01-02 15:04" 是Go语言的时间格式化标准,您可以根据需要调整来显示年-月-日、小时:分钟等信息。

结合分页功能使用

当您的文档数量非常庞大时,仅仅显示一个列表是不够的,通常还需要搭配分页功能。在 archiveList 标签中,只需要将 type 参数设置为 page,然后结合 pagination 标签即可实现。

例如,一个带有分页的最新文章列表可以这样实现:

<div class="paginated-latest-articles">
    <h2>所有文章</h2>
    <ul>
        {% archiveList archives with type="page" order="id desc" limit="10" %}
            {% for item in archives %}
            <li>
                <a href="{{ item.Link }}" title="{{ item.Title }}">
                    <h3>{{ item.Title }}</h3>
                    <p>发布时间:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</p>
                </a>
            </li>
            {% endfor %}
        {% endarchiveList %}
    </ul>

    {# 分页代码 #}
    <div class="pagination-controls">
        {% pagination pages with show="5" %}
            {% if pages.PrevPage %}<a href="{{ pages.PrevPage.Link }}">上一页</a>{% endif %}
            {% for page in pages.Pages %}
                <a href="{{ page.Link }}" class="{% if page.IsCurrent %}active{% endif %}">{{ page.Name }}</a>
            {% endfor %}
            {% if pages.NextPage %}<a href="{{ pages.NextPage.Link }}">下一页</a>{% endif %}
        {% endpagination %}
    </div>
</div>

在这里,type="page" 告诉 archiveList 标签这是一个需要分页的列表,并且 limit="10" 定义了每页显示10篇文档。紧随其后的 pagination 标签则会自动生成页码链接,方便访客浏览所有页面。

总结操作步骤

要在安企CMS中按浏览量或发布时间对文档列表进行排序,您只需遵循以下步骤:

  1. 确定需要修改的模板文件:这通常是网站首页模板 (index/index.html)、分类列表页模板 ({模型table}/list.html) 或其他包含文档列表的部分。
  2. 找到 archiveList 标签:在模板文件中定位到负责显示文档列表的 {% archiveList ... %} 代码块。
  3. 调整 order 参数
    • 若要按浏览量从高到低排序,请将 order 参数设置为 order="views desc"
    • 若要按发布时间从新到旧排序,请将 order 参数设置为 order="id desc"
  4. 保存并更新缓存:保存模板文件,如果网站开启了缓存,记得在后台更新系统缓存,以便新的排序规则生效。

安企CMS的模板标签设计使得内容排序变得直观易用,通过简单的参数调整,就可以让您的网站内容以最符合访客需求的方式呈现,极大地提升了网站的实用性和用户体验。


常见问题 (FAQ)

  1. 问:除了降序(desc),我能否按升序(asc)排列文档? 答:当然可以。在 order 参数中,除了 desc(降序),您也可以使用 asc(升序)。例如,order="views asc" 将会按浏览量从低到高排序,而 order="id asc" 则会按最早发布的文档进行排序。

  2. 问:order="id desc"order="CreatedTime desc" 有什么区别,我应该选择哪个来按发布时间排序? 答:在安企CMS中,order 参数直接支持 id desc 来根据文档ID进行降序排序。由于文档ID通常是系统创建时自动分配的唯一且递增的标识,因此 id desc 能够非常有效地实现按发布时间从新到旧的排序。而 CreatedTime 字段本身虽然存储了发布时间

相关文章

安企CMS如何显示指定分类下的文档列表并进行分页?

安企CMS(AnQiCMS)以其灵活的模板机制和强大的内容管理功能,让网站内容的展示变得非常简单高效。对于许多网站来说,将内容按分类清晰地展示,并提供便捷的分页导航,是提升用户体验和优化搜索引擎排名的关键。接下来,我们一起了解如何在安企CMS中轻松实现指定分类下的文档列表显示和分页功能。 ### 灵活配置,掌控内容展示 安企CMS的模板系统采用了类似Django模板引擎的语法

2025-11-08

如何在多站点环境下,通过标签参数指定调用特定站点的内容进行显示?

在使用安企CMS(AnQiCMS)进行网站管理时,多站点功能无疑为拥有多个品牌、子站点或内容分支的用户带来了极大的便利。它允许我们在一个统一的后台高效管理多个独立的网站。然而,在实际运营中,我们有时会遇到一个特定的需求:在一个站点上,展示另一个特定站点的内容。例如,主站希望引用子站的一些最新文章,或者特定专题站希望展示另一个合作站点的产品信息。 此时,“如何在多站点环境下

2025-11-08

当AnQiCMS程序升级后,前台页面显示未更新时,如何进行故障排除?

AnQiCMS 程序升级后,前台页面显示未更新时,如何进行故障排除? 当你满怀期待地升级了 AnQiCMS 程序,以为新功能和优化会立刻展现在你的网站上,结果却发现前台页面纹丝不动,还停留在旧版本,这种感觉确实让人有点抓狂。别担心,这通常不是什么大问题,多半是缓存或程序加载机制在作祟。今天我们就来一起详细排查一下,看看如何让你的网站前台焕然一新。 ### 为什么会出现页面未更新的情况

2025-11-08

如何在AnQiCMS中实现内容参数筛选,动态调整列表显示结果?

在内容管理系统中,让用户能够根据自己的需求快速找到所需信息,是提升网站体验和内容价值的关键。AnQiCMS 提供了强大的自定义内容模型和灵活的模板标签,帮助我们轻松实现内容的参数筛选,从而动态调整列表的显示结果,极大地增强了网站内容的交互性和用户友好性。 本文将详细探讨如何在 AnQiCMS 中利用这些功能,从后端配置到前端展示,一步步实现内容参数筛选。 --- ### 一、

2025-11-08

安企CMS中如何根据推荐属性(如头条、推荐)筛选文档列表?

安企CMS作为一款高效的内容管理系统,提供了丰富的功能来帮助运营者管理和展示网站内容。其中,“推荐属性”功能是一个非常实用的工具,它允许我们对文档进行灵活的标记,进而实现在网站不同区域动态筛选和展示特定内容。本文将详细探讨如何在安企CMS中利用推荐属性来筛选文档列表,让网站内容更具活力和吸引力。 ### 第一部分:理解安企CMS的推荐属性 在安企CMS的后台,当我们发布或编辑一篇文档时

2025-11-08

文档列表中如何排除特定分类的内容?

在网站运营中,我们经常需要灵活地控制内容的展示。比如,您可能希望在首页展示最新文章,但又不希望包含某个特定的分类,像“内部通知”或“已归档内容”;或者在一个产品列表中,您想要排除那些“已停产”或“内部测试”的产品分类,以保持面向用户的界面简洁明了。 安企CMS提供了非常便捷而强大的功能来满足这类需求。通过巧妙运用模板标签中的`archiveList`

2025-11-08

如何在安企CMS中实现站内搜索结果的精准展示?

在日常的网站运营中,站内搜索功能的重要性不言而喻。它不仅是用户快速找到所需信息的桥梁,更是提升用户体验、延长访问时长、乃至促成转化的关键环节。如果用户输入关键词后,得到的是一堆无关紧要的结果,他们很可能会迅速离开。因此,如何在AnQiCMS中实现站内搜索结果的精准展示,是每一位内容运营者都应深入探究的课题。 AnQiCMS作为一个专为内容管理打造的系统,内置了强大而灵活的搜索机制和内容组织能力

2025-11-08

如何获取并显示单个文档的完整内容和所有字段信息?

内容管理系统的核心价值之一,在于能够灵活地定义和呈现各种类型的内容。对于安企CMS(AnQiCMS)的用户而言,无论是展示一篇详细的文章、一个产品页面,还是一个自定义的数据条目,如何高效地获取其完整内容以及所有关联字段,是进行前端模板开发和内容呈现的关键。 今天,我们就来深入探讨在AnQiCMS中,如何通过模板标签这一“万能钥匙”,轻松驾驭单个文档内容的获取与显示。 ### 获取文档核心内容

2025-11-08