原文来自:https://www.zixuephp.com
dedecms读取三级栏目路径出现%7Bcmspath%7D的
实现代码:其实也就是一个标签嵌套:
- <!–代码开始–>
 - {dede:channelartlisttypeid=6row=4}
 - <divclass="list">
 - <span><ahref="{dede:fieldname='typeurl'/}">{dede:fieldname='typename'/}</a></span
 - <ul>
 - {dede:sqlsql='Select*fromdede_arctypewherereid=~id~ORDERBYidlimit0,7'}
 - <li><ahref='[field:typedir/]'target='_blank'>[field:typename/]</a></li
 - {/dede:sql
 - </ul>
 - </div>
 - {/dede:channelartlist
 - <!–代码结束–>
 
typeid='' 指定顶级栏目就可以啦,limit0,7 这个7是控制三级栏目的显示个数的,显示样式自己调整CSS,有时虽然调用出来了,但多了一个{cmspath}.
解决办法:
<a href='[field:typedir function="cn_substr(@me,50,9)"/]' target='_blank'>[field:typename/]</a
cn_substr(@me,50,9)这个说明一下:
@me这个是返回的值 {cmspath}/aaa
这个函数是字符截取。截取长度为50,若没有50个,会截取所有的。。9是开始截取的位置。。。
我们知道 楼主的调用方法调用出来后路径中都带有 {cmspath}
利用这个直接把{cmspath}截取掉了.
如果是在二级目录下,虽然{cmspath}被截取掉啦,但是路径确不对,这时可将<li><a href='[field:typedir/]' target='_blank'>[field:typename/]</a</li
换成<li><a href='[field:typeurl/]' target='_blank'>[field:typename/]</a</li,这样就不需要cn_substr(@me,50,9)来截取了.
