我们需要操作的就是修改织梦内核的文件
教程如下
打开include/arc.listview.class.php,找到:
//假如不消默认的sortrank或id排序,利用连系查询(数据量大时很是迟钝)if(preg_match('/hot|click|lastpost|title/', $orderby)){$query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath$addFieldFROM `js_archives` arcLEFT JOIN `js_arctype` tp ON arc.typeid=tp.id$addJoinWHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";}//普通环境先从arctiny表查出ID,然后按ID查询(速度很是快)else{$t1 = ExecTime();$ids = array();$query = "SELECT id FROM `js_arctiny` arc WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row ";$this->dsql->SetQuery($query);$this->dsql->Execute();while($arr=$this->dsql->GetArray()){$ids[] = $arr['id'];}$idstr = join(',',$ids);if($idstr==''){return '';}else{$query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath$addFieldFROM `js_archives` arc LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id$addJoinWHERE arc.id in($idstr) $ordersql ";}$t2 = ExecTime();//echo $t2-$t1;}
改成
if($orderby=="default"){$t1 = ExecTime();$ids = array();$query = "SELECT id FROM `js_arctiny` arc WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row ";$this->dsql->SetQuery($query);$this->dsql->Execute();while($arr=$this->dsql->GetArray()){$ids[] = $arr['id'];}$idstr = join(',',$ids);if($idstr==''){return '';}else{$query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath$addFieldFROM `js_archives` arc LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id$addJoinWHERE arc.id in($idstr) $ordersql ";}$t2 = ExecTime();//echo $t2-$t1;}else{$query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath$addFieldFROM `js_archives` arcLEFT JOIN `js_arctype` tp ON arc.typeid=tp.id$addJoinWHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";}
再找到
else {$ordersql=" ORDER BY arc.sortrank $orderWay";}
改成
else if($orderby=="default"){$ordersql=" ORDER BY arc.sortrank $orderWay";}else{$ordersql=" ORDER BY ".$orderby.",arc.sortrank $orderWay";}
前端模板代码如下
{dede:list pagesize='10' orderby='arc.title desc,arc.id'}