仿站咨询QQ:2587483189

手机微信同号:15850888840

如何让{dede:channel}有子栏目显示子栏目,无子栏目不显示同级栏

 我们在使用织梦系统制作网站时经常会遇到网站栏目较多,显示当前栏目下的二级与三级栏目时,使用栏目嵌套标签,但是当三级栏目为空时,会显示同级栏目。从用户体验角度出发,常理情况下也是需要空白的,即二级栏目下的三级栏目如为空时,则不显示。那么如何让织梦{dede:channel type=’son’}无子栏目时不显示同级栏目呢?

 
如何让仿站织梦{dede:channel}无子栏目时不显示同级栏目
 
方法一:
打开:include\taglib\channel.lib.php文件。找到
 
1
if($type==’son’ && $reid!=0 && $totalRow==0)
 
 
改成
 
1
if($type==’son’ && $reid!=0 && $totalRow==0 && $noself==’’)
 
 
网上可以找到的答案也就是上面这些了,有些童鞋按照上述方法就解决了,可是有些童鞋的问题依然没有解决!
 
问题出在哪呢?原来是要在织梦的channel标签中加上 noself=’yes’就可以了!
 
{dede:channel type=’son’ row=’5’ noself=’yes’}
 
然后在模板中引用实例如下:
 
1
<ul>
2
{dede:channelartlist typeid=’10’}
3
  <li class="li_biaoti"><a class="s" href="{dede:field name=’typeurl’/}" >{dede:field name=’typename’/}</a></li>
4
   {dede:channel type=’son’ noself=’yes’}   
5
    <li><a class="t" href="[field:typelink/]">[field:typename/]</a></li>
6
   {/dede:channel}
7
 {/dede:channelartlist}  
8
</ul>
 
方法二:
打开:include\taglib\channel.lib.php
 
找到第110行,注释掉这段代码,如下:
 
1
//如果用子栏目模式,当没有子栏目时显示同级栏目
2
   if($type=='son' && $reid!=0 && $totalRow==0)
3
   {
4
       $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,keywords,description,arcpic,sitepath
5
           FROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
6
       $dsql->SetQuery($sql);
7
     $dsql->Execute();
8
   }
 
保存文件。
 
再刷新一下代码。就OK了!

  • 上一篇:织梦手机端搜索时候直接调用search_m.htm手机站页面的办法
  • 下一篇:dedecms会员中心空间中,spacenewart标签功能的拓展
  • 来源:未知//所属分类: dede仿站 /更新时间:2019-09-19
    相关仿站教程