dedecms自定义字段排序

2025-11-30 22:27:18

1、找到dede:arclist标签源文件-include\taglib\arclist.lib.php

2、在arclist.lib.php文件查找“//文档排序的方式”

 第335行左右添加代码

 else if($orderby == 'number') $ordersql = "  ORDER BY addf.number $orderWay";

dedecms自定义字段排序

3、原因可以在“//获取附加表信息”这段代码查看

addf是新字段附加表的sql别名

有差别可以自己调整

dedecms自定义字段排序

4、然后就可以在dede:arclist标签用orderby='number'排序

dedecms自定义字段排序

1、找到dede:list标签源文件-include\arc.listview.class.php

这个文件代码修改要多一些

2、在arc.listview.class.php页面查找“//排序方式”

大概738行添加代码

else if($orderby=="number") {            $ordersql = " ORDER BY addf.number $orderWay";        }

dedecms自定义字段排序

3、查找“//获得附加表的相关信息”

大概749行修改代码,加“//”的是原代码,"\\"是修改的代码(下同)

//$addJoin = " LEFT JOIN `$addtable`  ON arc.id = ".$addtable.'.aid ';

\\$addJoin = " LEFT JOIN `$addtable` addf ON arc.id = addf.aid ";

dedecms自定义字段排序

4、大概763行,修改if..else...中的代码

if(!empty($arr['rename'])) {       

//$addField .= ','.$addtable.'.'.$k.' as '.$arr['rename'];      

\\$addField .= ',addf.'.$k.' as '.$arr['rename'];                       

}      else {        

 // $addField .= ','.$addtable.'.'.$k;        

 \\$addField .= ',addf.'.$k;                        }

dedecms自定义字段排序

5、查找“//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)”

大概763行,修改代码       

 //if(preg_match('/hot|click|lastpost/', $orderby))       

\\if(preg_match('/hot|click|lastpost|number/', $orderby))

dedecms自定义字段排序

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢