如何为文档列表设置分页,并显示页码导航?

📅 👁️ 76

在现代网站运营中,为内容列表设置分页功能几乎是不可或缺的。它不仅能显著提升用户浏览体验,避免单页内容过长导致加载缓慢,还有助于搜索引擎更好地抓取和索引网站内容。对于使用安企CMS的朋友来说,实现文档列表的分页并显示页码导航是一个非常直观且强大的功能。

安企CMS为我们提供了灵活的模板标签,让内容展示的控制权牢牢掌握在自己手中。要为文档列表设置分页,并友好地展示页码导航,我们主要会用到两个核心的模板标签:archiveListpagination

第一步:准备分页的文档列表

首先,我们需要通过 archiveList 标签来获取需要分页的文档数据。这个标签非常强大,它能根据我们的需求筛选出文章、产品等各种类型的文档。要启用分页功能,关键在于给 archiveList 标签设置 type="page" 参数,并指定每页显示多少条内容的 limit 参数。

例如,如果我们想在文章列表页显示文章模型(moduleId="1")下的所有文章,并且每页显示10条,我们可以这样来编写:

{% archiveList archives with type="page" limit="10" moduleId="1" %}
    {# 在这里循环展示每一页的文档内容 #}
{% endarchiveList %}

在这里,archives 是我们自定义的一个变量名,它会承载当前页所包含的文档数据列表。您可以根据实际情况调整 moduleId(比如,产品列表可能是 moduleId="2"),甚至可以通过 categoryId 来指定某个特定分类下的文档。

第二步:展示当前页的文档内容

获取到当前页的文档数据 archives 后,我们就可以利用 for 循环标签来遍历并展示每一篇文档的详细信息了。在循环中,您可以轻松访问到每篇文档的标题、链接、简介、发布时间、阅读量等各种字段。

一个典型的文档内容展示结构可能像这样:

{% for item in archives %}
<div class="document-item">
    <h3><a href="{{item.Link}}">{{item.Title}}</a></h3>
    <p>{{item.Description}}</p>
    <div class="meta-info">
        <span>发布日期: {{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
        <span>阅读量: {{item.Views}}</span>
    </div>
</div>
{% empty %}
<p>抱歉,当前分类或搜索条件下暂时没有找到任何文档。</p>
{% endfor %}

这里我们使用了 item.Link 获取文档链接,item.Title 获取标题,item.Description 获取简介。stampToDate 标签则能帮助我们把时间戳格式化成易读的日期。如果 archives 列表为空,{% empty %} 标签中的内容就会被显示,这有助于提升用户体验。

第三步:构建页码导航

仅仅显示当前页的文档还不够,用户还需要通过页码导航跳转到其他页面。这时候,pagination 标签就派上用场了。它会自动识别 archiveList 标签生成的分页数据,并渲染出“首页”、“上一页”、“下一页”以及具体的页码数字。

我们通常会将 pagination 标签放在 archiveList 标签的下方,确保在文档内容展示完成后,用户能方便地找到导航。pagination 标签可以接受一个 show 参数,用于控制在页码导航中最多显示多少个页码数字。

例如,显示最多5个页码的导航:

<nav class="pagination-nav">
    {% pagination pages with show="5" %}
    <ul>
        {# 显示总览信息 #}
        <li class="info">共 {{pages.TotalItems}} 条 / 第 {{pages.CurrentPage}} 页</li>

        {# 首页链接 #}
        <li class="page-item {% if pages.FirstPage.IsCurrent %}active{% endif %}">
            <a href="{{pages.FirstPage.Link}}">{{pages.FirstPage.Name}}</a>
        </li>

        {# 上一页链接 #}
        {% if pages.PrevPage %}
        <li class="page-item">
            <a href="{{pages.PrevPage.Link}}">{{pages.PrevPage.Name}}</a>
        </li>
        {% endif %}

        {# 中间页码 #}
        {% for item in pages.Pages %}
        <li class="page-item {% if item.IsCurrent %}active{% endif %}">
            <a href="{{item.Link}}">{{item.Name}}</a>
        </li>
        {% endfor %}

        {# 下一页链接 #}
        {% if pages.NextPage %}
        <li class="page-item">
            <a href="{{pages.NextPage.Link}}">{{pages.NextPage.Name}}</a>
        </li>
        {% endif %}

        {# 尾页链接 #}
        <li class="page-item {% if pages.LastPage.IsCurrent %}active{% endif %}">
            <a href="{{pages.LastPage.Link}}">{{pages.LastPage.Name}}</a>
        </li>
        </ul>
    {% endpagination %}
</nav>

在上面的代码中,pagespagination 标签提供的变量,它包含了所有与分页相关的信息,例如:

  • pages.TotalItems:总文档数量。
  • pages.CurrentPage:当前页码。
  • pages.FirstPagepages.LastPagepages.PrevPagepages.NextPage:分别代表首页、尾页、上一页、下一页的链接和名称。我们可以通过 pages.FirstPage.Link 来获取链接地址,pages.FirstPage.Name 获取显示文本。
  • pages.Pages:这是一个包含所有中间页码链接的数组,我们可以通过循环 {% for item in pages.Pages %} 来逐一显示它们。
  • item.IsCurrent:这个布尔值非常有用,它可以帮我们判断当前循环到的页码是否就是用户正在访问的页面,从而为当前页添加active样式进行高亮显示。

将这些标签组合起来,并结合您网站的CSS样式,一个功能完善且美观大方的文档列表分页导航就构建完成了。安企CMS的这种设计理念,旨在让内容运营者能够以最小的学习成本,实现强大的网站功能。


常见问题解答 (FAQ)

问:分页后,网站的URL结构会发生变化吗?

答:会的。当您在文档列表上启用分页功能后,AnQiCMS会自动在列表页的URL中添加页码参数。例如,如果您的文章列表基础URL是 /article/list.html,那么第二页的URL可能会变成 /article/list-2.html,或者根据您的伪静态规则显示为 /article/list/page/2。这种带有明确页码的URL结构对搜索引擎优化(SEO)非常有帮助。

问:除了文档列表,其他类型的内容可以实现分页吗?

答:当然可以。安企CMS的pagination标签是通用的分页导航生成器。只要是支持type="page"参数的列表标签,例如tagDataList

相关文章

如何在文档列表页实现多条件(如自定义参数)的筛选功能?

在安企CMS中,为文档列表页实现多条件筛选功能,特别是基于自定义参数的筛选,是提升用户体验、帮助用户快速找到所需内容的关键。安企CMS凭借其灵活的内容模型和强大的模板标签系统,让这一功能实现起来既高效又直观。 整个过程可以分为几个核心步骤:首先,在后台定义好你的内容模型和自定义筛选字段;其次,在模板中构建筛选条件的展示界面;最后,利用列表标签将筛选结果呈现在文档列表中。 --- ### 一

2025-11-08

文档列表页面如何实现按关键词搜索和显示结果?

在日益庞大的网站内容面前,如何帮助访客快速精准地找到所需信息,是提升用户体验和网站价值的关键。安企CMS(AnQiCMS)深谙内容管理之道,为我们提供了功能强大且灵活的关键词搜索机制,让文档列表页面能够轻松实现按关键词搜索并优雅地呈现结果。 **理解安企CMS的搜索核心:`archiveList`标签的妙用** 安企CMS实现关键词搜索的核心在于其强大的模板标签体系

2025-11-08

如何根据特定推荐属性(如“头条”、“推荐”)筛选并显示文档列表?

在AnQiCMS中,内容推荐属性的灵活运用,是提升网站内容曝光度和用户体验的关键环节。无论是希望在首页突出重要新闻,还是在特定版块推荐精选内容,AnQiCMS都提供了便捷高效的方案。本文将深入探讨如何根据“头条”、“推荐”等特定属性,筛选并显示文档列表,帮助你更好地管理和呈现网站内容。 ### 第一部分:理解推荐属性及其设置 在AnQiCMS的内容管理系统中,推荐属性是一项非常实用的功能

2025-11-08

如何调用并显示文档中自定义模型字段的数据?

在安企CMS中,灵活的内容模型是其核心优势之一,它允许我们根据不同业务需求创建文章、产品等各类信息载体,并为它们定义独有的属性。当我们为文档自定义了这些个性化的字段后,如何将其数据呈现在网站前端,是许多用户关注的重点。本文将详细为您解析这一过程,帮助您轻松驾驭安企CMS的自定义模型字段。 ### 理解自定义模型字段的价值 首先,让我们明确自定义模型字段的重要性。在内容管理中,标准字段(如标题

2025-11-08

如何显示指定分类的名称

在AnQiCMS中灵活展示分类名称:一份详尽的模板调用指南 内容分类是网站结构的核心,它们不仅帮助组织和管理海量信息,更是引导用户浏览网站、提升用户体验的关键。无论是文章列表、产品详情,还是侧边导航,清晰地展示分类名称都能让您的网站内容更具条理。AnQiCMS 凭借其简洁高效的模板引擎,提供了多种灵活的方式来调用和显示指定分类的名称,让您可以根据不同的场景需求,轻松实现定制化的内容展示

2025-11-08

如何在安企CMS模板中直接定义一个字符串数组?

在安企CMS的模板开发中,我们经常会遇到需要在页面上展示一些列表数据,比如导航菜单、分类标签、或是一些固定选项。当这些数据不适合从后台数据库动态获取,或者我们仅仅需要一个简单、固定的字符串集合时,直接在模板中定义一个字符串数组就显得非常便捷和高效。安企CMS基于Django模板引擎语法,为我们提供了灵活的方式来处理这类需求。 ### 核心方法:使用 `list`

2025-11-08

安企CMS模板中使用`list`过滤器定义数组时,可以包含数字类型吗?

在安企CMS的模板开发过程中,我们经常需要处理各种数据,其中数组(或列表)是组织数据的常用结构。当涉及到在模板中直接定义一个包含不同数据类型的数组时,不少朋友可能会好奇,像数字这样的类型,它也能被`list`过滤器处理并包含进去吗? 答案是肯定的。安企CMS模板中的`list`过滤器设计得非常灵活,它完全支持在定义的数组中包含数字类型的数据。这意味着你在构建模板时,可以方便地将字符串、整数

2025-11-08

如何遍历通过`list`过滤器在安企CMS模板中定义的数组?

在安企CMS的模板设计中,我们经常会遇到需要定义并遍历一些固定或小型的数组数据的情况。虽然大多数动态内容会通过内置的标签如`archiveList`、`categoryList`等获取,但对于一些本地化配置、自定义选项或静态列表,直接在模板中处理数组会更加便捷。安企CMS提供了`list`过滤器,配合`for`循环标签,就能轻松实现这一需求。 ### 认识`list`过滤器

2025-11-08