{dede:channel}
标签在无子栏目时不显示同级栏目,可以通过修改模板文件实现。具体操作如下:,,1. 打开模板文件,找到{dede:channel}
标签所在的位置。,2. 在{dede:channel}
标签内部添加一个判断条件,当当前栏目没有子栏目时,不显示同级栏目。可以使用{dede:field name='typeid' function='GetSonIds(@me)'}
获取当前栏目的子栏目ID列表,然后使用count()
函数计算子栏目数量,如果数量为0,则不显示同级栏目。,,示例代码:,,“html,{dede:channel type='top' currentstyle='##title##'}, {dede:field name='typeid' function='GetSonIds(@me)' assign='sonids'}, {dede:field name='typeid' function='count(@sonids)' assign='soncount'}, [eq name='soncount' value='0'], {dede:field name='typeurl'/}, [/eq],##title##,{/dede:channel},
`,,这段代码首先获取当前栏目的子栏目ID列表,并计算子栏目数量。然后使用
[eq]和
[/eq]`标签判断子栏目数量是否为0,如果为0,则输出当前栏目的链接。这样就实现了在无子栏目时不显示同级栏目的效果。在织梦CMS中,{dede:channel}标签用于调用栏目,但有时我们希望在没有子栏目时不显示同级栏目,以下是两种方法来实现这一需求:
方法一:修改 channel.lib.php 文件
1、打开文件:找到并打开includetaglibchannel.lib.php
文件。
2、查找代码:在该文件中搜索以下代码:
“`php
if($type==’son’ && $reid!=0 && $totalRow==0)
“`
3、修改代码:将上述代码修改为:
“`php
if($type==’son’ && $reid!=0 && $totalRow==0 && $noself==”)
“`
4、应用标签:在模板中使用{dede:channel}标签时,添加noself属性:
“`html
{dede:channel type=’son’ noself=’yes’}
“`
5、示例代码:
“`html
<ul>
{dede:channelartlist typeid=’10’}
<li class="li_biaoti"><a class="s" href="{dede:field name=’typeurl’/}">{dede:field name=’typename’/}</a></li>
{dede:channel type=’son’ noself=’yes’}
<li><a class="t" href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
{/dede:channelartlist}
</ul>
“`
方法二:注释掉指定代码行
1、打开文件:找到并打开includetaglibchannel.lib.php
文件。
2、查找代码:在该文件中查找第110行。
3、注释代码:将第110行的代码注释掉,如下所示:
“`php
// if($type==’son’ && $reid!=0 && $totalRow==0)
“`
4、保存文件:保存修改后的文件。
5、刷新页面:刷新页面,即可看到效果。
表格对比两种方法
方法 | 步骤 | 优点 | 缺点 |
方法一 | 修改 channel.lib.php 文件 | 灵活性高,适用于多种场景 | 需要修改系统文件,有一定风险 |
方法二 | 注释掉指定代码行 | 简单直接,无需修改标签 | 只适用于特定情况,不够灵活 |
相关问答FAQs
1、问:如果修改了channel.lib.php文件后没有生效怎么办?
答:确保你已经正确修改了文件,并且清除了缓存,如果仍然无效,请检查是否有其他插件或设置影响了该功能。
2、问:为什么需要添加noself属性?
答:noself属性用于控制是否显示同级栏目,当设置为“yes”时,表示不显示同级栏目,从而解决了无子栏目时显示同级栏目的问题。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1107832.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复