但是调用指定栏目的时候,都是用的后台栏目指定的排序方式,但是只需要修改一小点东西,就可以实现按我们指定的typeid顺序进行排序。方法如下:
打开/include/taglib/channelartlist.lib.php, 找到$dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `idea_arctype` WHERE $tpsql ORDER BY sortrank ASC LIMIT $totalnum"); 处,修改成:
if(preg_match('#,#', $typeid) && $orderby == 'typeid') { $tpsql .= " ORDER BY FIELD(id,$typeid) "; } else { $tosql .= ' ORDER BY sortrank ASC '; } $dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `idea_arctype` WHERE $tpsql LIMIT $totalnum");
这样后台的修改就完成了,模板调用的时候,在channelartlist标签中,增加一个ordeby='typeid'就可以按typeid排序了,不指定的话,就按后台指定的排序:
测试代码
{dede:channelartlist typeid='1,2,3,4,5'}{dede:field.typename/}<br/>{/dede:channelartlist}-------------------------------------------<br/>{dede:channelartlist typeid='4,5,2,1,3' orderby='typeid'}{dede:field.typename/}<br/>{/dede:channelartlist}对比如下:
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!