网站栏目及内容(一个比较实用的循环调用子栏目及其内容列表的使用)
优采云 发布时间: 2021-10-27 19:15网站栏目及内容(一个比较实用的循环调用子栏目及其内容列表的使用)
德德cms还是蛮不错的,当然除了论坛的技术响应速度!!今天,我分享了一个关于循环调用子列及其内容列表的实用小代码。其实看标签手册就知道了,不过毕竟还有优采云!
根据标签手册,在织梦(Dedecms)系统中,可以使用channelartlist标签来循环子列及其列数据。据说也是织梦(Dedecms)系统中唯一支持标签嵌套的调用标签。基本用法如下,可根据需要修改:
{dede:channelartlist}
{dede:field/}更多...
{/dede:channelartlist}
没做演示,找了个类似的渲染图,借用了:
以上代码可以实现首页子栏和子栏内容列表的调用!下面说一下channelartlist标签在列表页和内容页上的使用。
1、参数介绍
channelartlist 标签暂时支持三个参数,分别是:
typeid='0' 限制上层列ID;也可以使用top,支持“,”来表示多列
row='20' 循环列数,默认为20;
cacheid =''标签缓存ID,一般为空
但是如果只是把上面的代码原封不动的复制粘贴到最终列页面或者内容页面,是不会出现调用结果的,因为在标签channelartlist中,typeid为空的时候表示当前列,但是最终列列表和内容页没有子栏,所以会出错!
2、调用示例
在最终的列表页或内容页上,正确的调用方式应该如下:
{dede:channelartlist typeid='top'}
这里是typied='top',这个top值可以换成你想要的上层列ID,但不能为空。这一点大家一定要注意!
3、栏目高亮,特效调用
在这个标签下,可以直接使用{dede:field/}和{dede:field/}来表示列名和列链接。当然,还有一些其他的特殊变量,这里也介绍一下,比如:
{dede:field/} 和 {dede:field/} 都表示循环中的列 ID;
{dede:global} 表示循环增量变量,从 1 开始;
{dede:global} 代表循环魔法变量,单数为1,双数为2;
以上可以直接在channelartlist中应用。前两个2、3要特别注意。有了这两个变量,你就可以轻松打造出各种非常个性化的效果,比如列的交错颜色。
关于该栏的高亮,channelartlist.lib.php中没有收录,但是可以通过下面的DIY来高亮当前栏。方法(以dedecms 5.6为例):
打开channelartlist.lib.php文件,找到如下代码:
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
在下一行添加以下代码:
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id']){
$pv->Fields['currentstyle'] ='';
}别的{
$pv->Fields['currentstyle'] ='';
}
然后,您可以使用 {dede:field/} 调用模板。
版权属于作者。
商业转载请联系作者授权,非商业转载请注明出处。