正确设置自定义列表的SQL查询与分页标签即可实现分页。1. 配置内容查询SQL和对应的总记录数SQL;2. 设置每页显示数量;3. 在模板中使用[!--show.listpage--]调用分页导航;4. 确保两个SQL语句条件一致且无ORDER BY或LIMIT;5. 检查静态生成任务及目录权限。系统将自动处理分页逻辑。

帝国CMS的自定义列表页面实现分页功能,核心在于正确设置自定义列表规则并调用系统内置的分页函数。只要配置得当,分页会自动生效,无需手动编写分页逻辑。
自定义列表分页的基本原理
帝国CMS的自定义列表本质上是通过SQL语句查询数据,并将结果按设定显示在指定模板中。分页功能由系统根据总记录数和每页显示数量自动计算生成。
要实现分页,必须确保以下几点:
- 在创建自定义列表时,正确填写“总记录数”使用的SQL语句
- 设置合理的“每页显示记录数”
- 使用正确的分页标签在模板中调用分页导航
创建自定义列表时的关键设置
进入后台 → “栏目” → “自定义列表” → “增加自定义列表”:
1. 列表SQL查询语句: 编写查询内容的SQL,例如:SELECT * FROM [!db.pre!]ecms_news WHERE classid IN (1,2,3) ORDER BY newstime DESC2. 总记录数查询SQL: 必须与上面语句匹配,用于分页计算,例如:
SELECT COUNT(*) AS total FROM [!db.pre!]ecms_news WHERE classid IN (1,2,3)3. 每页显示记录数: 填写如 10、20 等数值
4. 标题SEO、文件存放目录: 设置静态化路径,如
/list/list_1_=$page?>.html模板中调用分页代码
在自定义列表使用的模板中(通常为 list.var 或专用列表模板),使用以下标签输出分页导航:
[!--show.listpage--]这个标签会自动生成类似“首页 上一页 1 2 3 下一页 尾页”的HTML结构。你也可以使用其他风格的分页标签:
- [!--show.page--]:简洁分页样式
- 通过用户自定义函数或修改 e/class/t_functions.php 中的分页函数来自定义输出格式
常见问题与解决方法
如果分页不显示或出错,检查以下几点:
- 总记录数SQL是否正确,不能包含 ORDER BY 或 LIMIT
- 两个SQL语句中的表名和条件是否一致
- 模板中是否遗漏了 [!--show.listpage--] 标签
- 如果启用了静态页,确认生成任务是否执行成功
- 检查目录权限,确保可以生成分页HTML文件
基本上就这些。只要SQL准确、分页标签存在,帝国CMS会自动处理翻页逻辑,包括动态模式和静态生成两种方式都能正常分页。关键是理解“总记录数SQL”和“内容查询SQL”的配合关系。










