DedeCMS调用子栏目显示同级栏目如何解决方案

从今天起,做一个简单的人,踏实务实。不沉溺幻想。不庸人自扰。要快乐,要开朗,要坚韧,要温暖,对人要真诚。要诚恳,要坦然,要慷慨,要宽容,要有平常心。

使用DedeCMS在调用某栏目的子栏目的时候,余斗用channelartlist标签时,当这个栏目没有子栏目时,就会出现重复同级栏目,如下图所示:

余斗的调用代码为:

	
	<ul>
	{dede:channelartlist typeid="192"}
	<li class="cc">
	<span class="ks_left"><a rel="nofollow noopener noreferrer" href="{dede:field name='typeurl'/}" target="_blank">{dede:field name='typename'/}</a></span>
	 <span class="ks_right">
	{dede:channel noself="yes"}
	<a rel="nofollow noopener noreferrer" href="[field:typeurl/]" target="_blank">[field:typename/]</a>
	{/dede:channel}
	</span>
	 </li>
	{/dede:channelartlist}
	</ul>
	

这段代码就是先循环输出顶级栏目,再输出子栏目,但是实际应用的时候,如果顶级栏目下没子栏目了,理论上应该为空,这里却调出同级栏目,这显然不是我们需要的。

余斗查询一番,找到解决方案(适用于DedeCMS5.6以上版本):

打开include/taglib/channel.lib.php文件,找到(大概在108行):

	
	  if($type=='son' && $reid!=0 && $totalRow==0)
	

修改为:

	
	 if($type=='son' && $reid!=0 && $totalRow==0 && $noself=='')
	

这样,就可以完美实现有子栏目则调用子栏目,没有子栏目则输出空。

本文DedeCMS调用子栏目显示同级栏目如何解决方案到此结束。内心越凄苦,外表越坚硬;痛苦越多,阳光越足;越是失意,越是要笑。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
dedecms如何实现任意页面调用当前会员信息的方

DedeCMS织梦判断是否有二级栏目输出HTML代码

织梦dedecms dede:arclist输出取消换行符

dedecms文章添加字段填栏目id,内容页调用字段里的栏目文章

dedeCMS首页列表页文章页调用tag的方法