,我们在用到channelartlist标签时候,有时候需要按照typeid进行排序,比如我们想要按照17,4,8这样依次输出,但是默认的会按照4,8,17进行排序。我们想要按照17,4,8这样排,要怎么处理?, , {dede:channelartlist typeid='17,4,8'},<h3><a href="{dede:field.typeurl/}">{dede:field.typename/}</a></h3>,{/dede:channelartlist}, ,找到 \include\taglib\channelartlist.lib.php 文件,第 78 行,找到如下代码:, ,$dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath ,FROM `dede_arctype` WHERE $tpsql ORDER BY sortrank ASC LIMIT $totalnum"); , ,修改为代码:, ,$dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite, ,siteurl,sitepath FROM `dede_arctype` WHERE $tpsql ORDER BY FIELD(id,$typeid) LIMIT $totalnum"); , ,就可以根据 typeid 排序了。或者直接替换该文件。