DedeCMS栏目调用时无子栏目不显示同级栏目的方法

啊,小雪,小雪,来了,来了。从微微的凉风中,从傍晚的喧闹中来了!像春风抖落万树梨花,像天女撒下漫天白絮……你不飘飘悠悠,因为那是骄傲的象征;你不轻轻起舞,因为那是胆小的缩影,听,沙沙沙沙、沙沙沙沙……我好像坐在屋里听那春雨的歌声。

我们在使用织梦制作网站时经常会遇到网站栏目较多,显示当前栏目下的二级与三级栏目时,使用栏目嵌套标签,但是当三级栏目为空时,会显示同级栏目。从用户体验角度出发,常理情况下也是需要空白的,即二级栏目下的三级栏目如为空时,则不显示。那么如何让织梦在使用调用代码

	
	{dede:channel type=’son’}
	

无子栏目时不显示同级栏目呢?今天跟余斗就跟大家分享一下解决方法:

方法一

打开:include\taglib\channel.lib.php文件。

找到代码(大概在第109行)

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

改成

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

网上可以找到的答案也就是上面这些了,有些站长按照上述方法就解决了,可是有些站长的问题依然没有解决!这是因为要在织梦的channel标签中加上noself=’yes’就可以了!

	
	{dede:channel type=’son’ row=’5’ noself=’yes’}
	

然后在模板中引用实例代码如下:

	
	 <ul>
	 {dede:channelartlist typeid=’10’}
	   <li class="li_biaoti"><a class="s" rel="nofollow noopener noreferrer" href="{dede:field name=’typeurl’/}" >{dede:field name=’typename’/}</a></li>
	    {dede:channel type=’son’ noself=’yes’}
	     <li><a class="t" rel="nofollow noopener noreferrer" href="[field:typelink/]">[field:typename/]</a></li>
	    {/dede:channel}
	  {/dede:channelartlist}
	 </ul>
	

方法二

打开:include\taglib\channel.lib.php

找到第110行,注释掉这段代码,如下:

	
	 if($type=='son' && $reid!=0 && $totalRow==0)
	    {
	        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
	            FROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
	        $dsql->SetQuery($sql);
	      $dsql->Execute();
	    }
	

保存文件。

再刷新一下代码。

以上两种方法都可以实现DedeCMS栏目调用时无子栏目不显示同级栏目的问题,大家根据实际情况自己选择应用!

本文DedeCMS栏目调用时无子栏目不显示同级栏目的方法到此结束。远大抱负始于初中,辉煌人生起于今日。小编再次感谢大家对我们的支持!

标签: DedeCMS 时无子