{dede:pagelist} 标签本身是用来生成分页导航链接(如“首页 上一页 1 2 3 4 5 下一页 末页”)的,它不直接输出总页数这个数字,我们可以通过其他方法来获取它,并在模板中显示出来。

主要有以下三种方法,推荐程度从高到低:
使用 {dede:pagecount} 标签(最推荐、最标准)
这是 DedeCMS 官方提供的、专门用于获取当前栏目或文档列表总页数的标签,它和 {dede:pagelist} 是“兄弟”标签,通常配合使用。
使用场景:
在列表页模板(通常是 list_article.htm)中,你想在分页导航的上方或下方显示一句话,“共 5 页,23 条记录”。
代码示例:

在你的列表页模板文件(如 代码解析: 最终效果:
页面会显示类似 如果你想在更复杂的地方使用总页数,或者你的模板版本比较旧没有 使用场景:
需要将总页数赋值给一个 PHP 变量,然后在模板的其他地方进行逻辑判断或样式控制。 代码示例: 在列表页模板文件( 代码解析: 注意: 直接在模板中写 PHP 代码需要确保你的服务器环境支持,并且模板文件没有被禁用 PHP 代码。 这种方法通过 JavaScript 解析 使用场景:
仅作为了解,或在无法修改 PHP 模板的极端情况下使用。 代码示例: 假设你的分页 HTML 结构如下: 你可以用 JS 这样获取:
在你的 DedeCMS 项目中,请优先使用方法一 /templets/default/list_article.htm)中,找到 {dede:pagelist} 的位置,在其附近添加 {dede:pagecount}
<div class="dede_pages">
<ul class="pagelist">
<!-- 显示总页数和总记录数 -->
<strong>
{dede:pagecount/}
页 /
{dede:global.totalcount/}
条
</strong>
<!-- 原有的分页导航链接 -->
{dede:pagelist listsize='5' listitem='index pre pageno next end '/}
</ul>
</div>
{dede:pagecount/}: 这个标签会直接输出当前列表页的总页数,如果列表有 50 条数据,每页显示 10 条,它会输出 5。{dede:global.totalcount/}: 这个全局变量用于获取当前列表的总记录数,和 pagecount 一起使用,信息更完整。{dede:pagelist ...}: 这是你原来的分页导航链接,保持不变。共 5 页,50 条记录 的文字,下面跟着 首页 上一页 1 2 3 4 5 下一页 末页 的链接。
使用 PHP 代码获取(灵活但需修改模板文件)
{dede:pagecount} 标签,你可以直接在模板文件里嵌入 PHP 代码来获取。
list_article.htm)中,使用 DedeCMS 的内置对象 $this 来获取。<div class="dede_pages">
<ul class="pagelist">
<!-- 使用PHP代码获取总页数 -->
<strong>
总页数:<?php echo $this->PageNo; ?>
</strong>
<!-- 或者获取总记录数,然后自己计算 -->
<strong>
总记录数:<?php echo $this->TotalResult; ?>,
每页 <?php echo $this->GetItemsPerPage(); ?> 条,
总页数:<?php echo ceil($this->TotalResult / $this->GetItemsPerPage()); ?>
</strong>
<!-- 原有的分页导航链接 -->
{dede:pagelist listsize='5' listitem='index pre pageno next end '/}
</ul>
</div>
$this->PageNo: 这是 DedeList 类的一个属性,它本身就包含了计算好的总页数。这是最直接、最高效的 PHP 方法。$this->TotalResult: 获取总记录数。$this->GetItemsPerPage(): 获取每页显示的记录数。ceil(...): PHP 的向上取整函数,用于计算总页数(51条记录/每页10条 = 5.1页,向上取整为6页)。
使用 JS 动态获取(不推荐,性能较差)
{dede:pagelist} 生成的 HTML 结构来找出总页数。非常不推荐,因为它会增加页面加载时间,且依赖于 HTML 结构的稳定性,一旦 DedeCMS 升级导致分页 HTML 结构变化,代码就会失效。<ul class="pagelist">
<span class="pageinfo">共 <strong>5</strong> 页</span>
<a href="list_1.html">首页</a>
...
</ul>
// 在页面加载完成后执行
window.onload = function() {
// 找到包含总页数的 span 元素
var pageInfoSpan = document.querySelector('.pagelist .pageinfo strong');
if (pageInfoSpan) {
var totalPages = pageInfoSpan.innerText;
console.log('总页数是: ' + totalPages);
// 你可以在这里用获取到的 totalPages 做其他事情
}
};
总结与对比
方法
优点
缺点
推荐度
{dede:pagecount}官方标准,代码简洁,性能最好
需要较新版本的 DedeCMS 支持
⭐⭐⭐⭐⭐ (强烈推荐)
PHP 代码
非常灵活,功能强大,适用于任何场景
需要修改模板文件,写一点 PHP 代码
⭐⭐⭐⭐ (官方标签不可用时的最佳选择)
JS 动态获取
无需后端修改,纯前端实现
性能差,不稳定,维护困难
⭐ (不推荐,仅作了解)
{dede:pagecount},这是最正确、最稳定、最高效的获取总页数的方式。
