首先,了解 `orderby` 的不同值及其作用是非常关键的:
- orderby='sortrank' 或 orderby='pubdate':按出版时间排列。
- orderby='hot' 或 orderby='click':表示按点击数排列。
- orderby='near':用于特定的近似排序。
- orderby='lastpost':按最后评论时间排列。
- orderby='scores':按得分排序(官方未明确说明)。
- orderby='id':按文章ID排序。
- orderby='rand':随机获得指定条件的文档列表。
此外,orderway 参数用于设置排序方式,其值可以是 desc(降序)或 asc(升序)。例如,倒序可以通过设置 orderway='asc' 实现。
Dedecms 列表页按权重排序的方法
如果您希望在 Dedecms 列表页中实现按权重(weight)排序的功能,可以按照以下步骤操作:
1. 在 list_article.htm 模板中添加以下代码:
{dede:list pagesize='12' orderby='weight' orderway='asc'}
2. 修改 include 目录下的 arc.listview.class.php 文件:
查找 else if($orderby=="lastpost...) 并在其后添加以下代码:
else if($orderby=="weight") { $ordersql = " order by arc.weight $orderWay"; }
3. 再次打开 arc.listview.class.php 文件,查找以下代码并修改:
if(ereg('hot|click|lastpost',$orderby)) 改为:
if(ereg('hot|click|weight|lastpost',$orderby))
通过以上三个步骤,您可以成功实现列表页内容按权重排序的功能,权重越小的内容会越靠前。此方法已在 Dedecms v5.7SP1 版本中测试成功。
总结来说,合理使用 `orderby` 和 `orderway` 参数,可以极大地提升用户体验。对于需要特殊排序需求的场景,手动修改核心文件也是一种有效的解决方案。