dede:channelartlist获取指定的栏目列表

时间:2018-07-22 06:41 / 来源:未知 / 作者:酱油 / 点击:

我们平时调用指定栏目列表的时候,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}

对比如下:

dede:channelartlist获取指定的栏目列表


猜你喜欢

推荐栏目

DEDECMS
DEDECMS

DEDE使用经验和技巧

WordPress
Wordpress

WP使用经验和技巧

Zblog
Zblog

Zblog使用经验和技巧

CSS
CSS

CSS使用经验和技巧

网络资料
网络资料

转载实用网络资料

按键伤人
按键伤人

转载乱七八糟的网络资源

我是酱油
我是酱油

随笔札记 记录生活点滴

本站推荐

百度站内搜索

专业博客主机