我们需要操作的就是修改织梦内核的文件
教程如下
打开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
          $addField
          FROM `js_archives` arc
          LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id
          $addJoin
          WHERE {$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
                      $addField
                      FROM `js_archives` arc LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id
                      $addJoin
                      WHERE 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
                      $addField
                      FROM `js_archives` arc LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id
                      $addJoin
                      WHERE 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
          $addField
          FROM `js_archives` arc
          LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id
          $addJoin
          WHERE {$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'}