muban大师 发表于 2019-5-27 12:46:35

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

我们在使用织梦制作网站时经常会遇到网站栏目较多,显示当前栏目下的二级与三级栏目时,使用栏目嵌套标签,但是当三级栏目为空时,会显示同级栏目。从用户体验角度出发,常理情况下也是需要空白的,即二级栏目下的三级栏目如为空时,则不显示。那么如何让织梦在使用调用代码
       
       
        {dede:channel type=’son’}
       
        无子栏目时不显示同级栏目呢?今天跟淘站网就跟大家分享一下解决方法:
       
        DedeCMS栏目调用时无子栏目不显示同级栏目的方法
       
        方法一
       
        打开:include\taglib\channel.lib.php文件。
       
        找到代码(大概在第109行)
       
       
        if($type=='son' && $reid!=0 && $totalRow==0)
       
        改成
       
       
        if($type==’son’ && $reid!=0 && $totalRow==0 && $noself==’’)
       
        DedeCMS栏目调用时无子栏目不显示同级栏目的方法
       
        网上可以找到的答案也就是上面这些了,有些站长按照上述方法就解决了,可是有些站长的问题依然没有解决!这是因为要在织梦的channel标签中加上noself=’yes’就可以了!
       
       
        {dede:channel type=’son’ row=’5’ noself=’yes’}
       
        然后在模板中引用实例代码如下:
       
       
          
          {dede:channelartlist typeid=’10’}
             
                {dede:channel type=’son’ noself=’yes’}
                [*,
                {/dede:channel}
          {/dede:channelartlist}
          
       
        方法二
       
        打开: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 ishidden1 order by sortrank asc limit 0] $line ";
                      $dsql->SetQuery($sql);
                    $dsql->Execute();
                }
       
        DedeCMS栏目调用时无子栏目不显示同级栏目的方法
       
        保存文件。
       
        再刷新一下代码。
       
        以上两种方法都可以实现DedeCMS栏目调用时无子栏目不显示同级栏目的问题,大家根据实际情况自己选择应用!
页: [1]
查看完整版本: 织梦DedeCMS栏目调用时无子栏目不显示同级栏目的方法