当前位置 : 主页 > WEB开发 > 正文

DedeCMS调用三级栏目无子栏目取同级修正

原创

重庆SEO2018-01-30 11:49:06阅读()网站安全dedecmsA+ / A-

        用DedeCMS做三级栏目的网站建设时,会经常需要调用三级栏目,并不需要太多二次开发,用channelartlist标签就能调用了,比如调用栏目id为6的子栏目然后再调用子栏目的子栏目,有多少个一级栏目就写多少次,修改一下typeid即可,虽然稍微麻烦了点,总比大串的代码强多了。写法如下:

{dede:channelartlist typeid = '6'}
<li><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
 <div class="subnav">
 {dede:channel type='son'}
 <a href="[field:typelink/]">[field:typename/]</a>
 {/dede:channel}
 </div>
</li>
{/dede:channelartlist}

        这样就解决了三级栏目调用的问题,但是当栏目没有子栏目的时候,默认调用同级栏目,源程序估计认为这样的展现比较好,但实际上体验非常不好。下面吖七提供修正方法。

channel标签无子栏目调用同级栏目

↑上面三个栏目没有子栏目,channel标签调用了同级栏目名

        打开 /include/taglib/channel.lib.php ,找到

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'}

    扩展阅读

    本文地址:https://www.vi586.com/web/527.html
    版权声明:原创文章,版权归重庆SEO吖七所有,欢迎分享本文,支持原创,转载请保留出处

    赞(82)