修改ecshop商品列表每页显示数量需同步调整模板传参、php逻辑调用及后台配置三处:一是在模板或控制器中确保get_pager()的$size参数为指定值;二是后台“显示设置”中修改对应配置项;三是检查lib_common.php或自定义分页函数中$size赋值逻辑;最后清除编译缓存与浏览器缓存验证。

修改ECSHOP商品列表每页显示的商品数量,核心是调整分页逻辑中“每页条数”($size)的取值,需从模板调用、PHP逻辑、数据库配置三处协同处理,缺一不可。
一、修改前台模板中的分页参数传递
商品列表页(如 category.dwt)通常通过 {insert name='goods_list' ...} 或 PHP 中调用 get_pager() 生成分页。关键是要确保传入的 $size 值是你想要的数量(比如 20 条/页)。
- 若使用 insert 标签,检查对应库文件(如
includes/lib_insert.php中的insert_goods_list函数),确认它调用get_pager()时是否硬编码了$size(常见默认为 12 或 20) - 若在
category.php等控制器中手动调用,查找类似get_pager($url, $filter, $count, $page, $size)的语句,把最后一个参数改为你的目标值(如20)
二、调整后台商品列表设置(影响部分页面)
部分商品列表(如后台商品管理、分类页)会读取系统配置或用户偏好:
- 进入 ECSHOP 后台 → 系统设置 → 商店设置 → 显示设置
- 找到「商品列表每页显示数量」或类似字段(不同版本名称略有差异,如“商品列表页显示商品数”)
- 修改该数值并保存,此设置通常影响
category.php和search.php的默认$size
三、检查并覆盖分页函数逻辑
ECSHOP 默认分页由 include/lib_common.php 中的 get_pager() 控制。若上述方式无效,说明有自定义逻辑覆盖了默认行为:
- 搜索项目中是否有重写函数,如
my_get_pager()(参考知识库中 Alviss 的修改示例) - 重点查看该函数内
$size = intval($size);上方是否有强制赋值,例如$size = 15;—— 直接改这里最有效 - 若使用自定义分页类(如
cls_pager.php),同样检查构造参数或assign_pager调用处的$size
四、验证与缓存清理
修改后需清除两层缓存才能生效:
- 删除
temp/compiled/下所有 .php 编译文件(尤其是 category.dwt 对应的编译文件) - 清空浏览器缓存,或用无痕窗口访问测试页
- 访问商品分类页,检查 URL 是否含
page=1&size=20类参数,或直接查看 HTML 源码中分页栏是否按新数量渲染











