• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    dede:channelartlist获取指定的栏目列表
    POST TIME:2020-04-10 18:49
    我们平时调用指定栏目列表的时候,channel标签虽然能调用栏目列表,但是不能调用指定的某些栏目栏目,所以我们一般用dede:channelartlist标签来实现,然后指定typeid属性来调用多个栏目,用逗号“,”分隔。
    但是调用指定栏目的时候,都是用的后台栏目指定的排序方式,但是只需要修改一小点东西,就可以实现按我们指定的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} 对比如下:
    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!