列表栏目“列表页模板”的按 ID 排序,主要不是在模板里设置,而是在控制器里设置。
改这个文件:
addons/cms/controller/Channel.php
找到:
$orders = [
['name' => 'default', 'field' => 'weigh DESC,publishtime DESC', 'title' => __('Default')],
];
改成按 ID 倒序:
$orders = [
['name' => 'default', 'field' => 'id', 'title' => __('Default')],
];
这里不要写 a.id DESC,会报“不支持的数据表达式”。因为排序方向 desc 是系统后面单独处理的。
列表页模板比如:
addons/cms/view/default/list.html
或产品列表:
addons/cms/view/default/list_product.html
里面的:
{cms:pagelist id="item"}
只是显示分页列表,不控制排序。真正排序是在 Channel.php 里这行执行:
->order($orderby, $orderway)
如果你想固定所有列表栏目默认按 ID 倒序,改 Channel.php 里的 $orders 就可以。改完清缓存。



发表评论 取消回复