dedecms产品栏目调取子栏目错乱的解决方法

前言

dedecms源码程序在php空间里面已经运行了一年多了,但是朋友在后台自己更新文章的时候,突然发现栏目错乱,这个的意思是什么呢?比如说xxx栏目下没有子栏目,而这个栏目确出现了其他的子栏目。

接下来把这个问题就给讨论一下。

解决方法

首先我们查看一下这位朋友产品栏目调用的代码:

{dede:channelArtlist typeid='3' } <li> {dede:type} <a style='font-size:14px;color:#D1D8E3;' href="[field:typelink /]"><b>[field:typename /]</b></a> {/dede:type}</li> {dede:channel type='son' noself='yes'} <li>  <a style='font-size:12px;color:#FF9224;' href='[field:typelink /]'>[field:typename/]</a></li> {/dede:channel} {/dede:channelArtlist}

从这样的看上去其实并没有多大的问题,但是更新出来的就不一样了。这里的解决方法就是把子栏目的{dede:channel}标签换成{dede:sql}标签来代替使用。这个要怎么使用呢?

{dede:sql sql='Select * from dede_arctype where reid=~id~ and ishidden != 1 ORDER BY id limit 0,20'}

然后结尾 {/dede:sql} 其中还需要把 href='[field:typelink /]' 更换为: href="[field:typedir function='str_replace("{cmspath}","",@me)'/]" 这样就完美的解决了

修改后代码为

{dede:channelArtlist typeid='3' } <li> {dede:type} <a style='font-size:14px;color:#D1D8E3;' href="[field:typelink /]"><b>[field:typename /]</b></a> {/dede:type} </li> {dede:sql sql='Select * from dede_arctype where reid=~id~ and ishidden != 1 ORDER BY id limit 0,20'} <li>   <a style='font-size:12px;color:#FF9224;' href="[field:typedir function='str_replace("{cmspath}","",@me)'/]"> [field:typename/] </a> </li> {/dede:sql} {/dede:channelArtlist}

这里需要注意到的是要把这个sql语句中dede_arctype中的前缀dede修改为您的表前缀,表前缀根据自己网站的表前缀进行修改。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索