迅睿 CMS 模板分页:三套分页标签的适用场景

· 迅睿CMS · 阅读 12
摘要

迅睿的分页标签有好几种,用错会得到“数据有但页码不出来”或者“页码有但数据重复”的结果。一、列表页分页{$pages}最常用。它会自动读取当前页和每页条数,输出完整的分页 HTML。前提是控制器里已经配置了 pagesize,没配置页数永远

迅睿的分页标签有好几种,用错会得到“数据有但页码不出来”或者“页码有但数据重复”的结果。

一、列表页分页

{$pages}

最常用。它会自动读取当前页和每页条数,输出完整的分页 HTML。前提是控制器里已经配置了 pagesize,没配置页数永远是 1。

二、自定义分页样式

{$pages_html}

返回的是数组,可以自己拼结构,方便套主题样式:

{loop $pages_html $p}
  <a href="{$p.url}" class="{$p.active}">{$p.name}</a>
{/loop}

三、API 或 AJAX 分页

这时候不能用上面的标签,因为它们直接输出 HTML。要改为在控制器里取 $this->get_page() 拿到当前页,再手动计算 offset,返回 JSON。

常见问题对照表

现象原因
有数据没页码控制器没设 pagesize,或没查总数
页码错乱、始终第一页伪静态规则把 page 参数吞掉了
第二页内容与第一页相同查询没带 limit offset
最后一页后还能翻总数计算没扣掉不显示的草稿

提醒

分页的 URL 依赖于伪静态配置。如果文章详情页能打开但分页 404,不用怀疑模板,先去后台检查 URL 规则是否给 /page/N 留了位置。