dede如何实现循环调用一二级栏目?

99ANYc3cd6
预计阅读时长 8 分钟
位置: 首页 DEDE建站 正文

在DedeCMS(织梦CMS)中,循环调用一二级栏目通常使用channel标签或channelartlist标签结合嵌套实现,以下是几种常见的方法:

dede循环调用一二级栏目
(图片来源网络,侵删)

方法1:使用channel标签嵌套(推荐)

<ul>
    {dede:channel type='top' row='10' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
    <li>
        <a href="[field:typelink/]">[field:typename/]</a>
        <!-- 二级栏目调用 -->
        {dede:channel type='son' noself='yes'}
            <ul>
                <li><a href="[field:typelink/]">[field:typename/]</a></li>
            </ul>
        {/dede:channel}
    </li>
    {/dede:channel}
</ul>

方法2:使用channelartlist标签(支持更多字段)

<ul>
    {dede:channelartlist typeid='top' row='10'}
    <li>
        <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
        <!-- 二级栏目调用 -->
        {dede:channel type='son' noself='yes'}
            <ul>
                <li><a href="[field:typelink/]">[field:typename/]</a></li>
            </ul>
        {/dede:channel}
    </li>
    {/dede:channelartlist}
</ul>

方法3:使用sql标签(灵活查询)

{dede:sql sql="SELECT * FROM `#@__arctype` WHERE reid=0 ORDER BY sortrank ASC"}
    <a href="[field:typedir function='str_replace("{cmspath}","",@me)'/]">[field:typename/]</a>
    {dede:sql sql="SELECT * FROM `#@__arctype` WHERE reid=[field:id/] ORDER BY sortrank ASC"}
        <a href="[field:typedir function='str_replace("{cmspath}","",@me)'/]">[field:typename/]</a>
    {/dede:sql}
{/dede:sql}

参数说明:

  1. type='top':调用顶级栏目
  2. type='son':调用子栏目
  3. noself='yes':不包含当前栏目(避免重复)
  4. row='10':限制调用数量
  5. currentstyle:当前栏目高亮样式

注意事项:

  1. 确保栏目缓存已更新(后台 → 系统 → 更新缓存)
  2. 如果栏目链接不显示,检查typedir字段是否包含{cmspath}
  3. 复杂结构建议使用channelartlist,它支持更多字段(如typeidtypeurl等)

根据实际需求选择合适的方法,通常方法1或方法2已能满足大部分需求。

dede循环调用一二级栏目
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
dede验证码不显示是权限问题吗?如何解决?
« 上一篇 昨天
Dede列表页如何调用二级栏目?附标签代码
下一篇 » 昨天

相关文章

取消
微信二维码
支付宝二维码

目录[+]