织梦cms怎么调用所有栏目

织梦CMS怎么调用所有栏目?

在织梦CMS中调用所有栏目(包括顶级栏目和各级子栏目)有多种实现方式,适用于网站地图、栏目总览等场景。

一、使用channel调用所有栏目

{dede:channel row='200' type='top'}
<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}

设置足够大的row值(如200)确保覆盖所有栏目。

二、用SQL直接查询所有栏目

{dede:sql sql="SELECT * FROM dede_arctype ORDER BY reid,sortrank"}
<li><a href="[field:typedir/]">[field:typename/]</a></li>
{/dede:sql}

三、调用所有栏目的树形结构

{dede:channel row='500'}
<li style="padding-left:[field:ID runphp='yes']@me=getDeep(@me)*20;[/field:ID]px">
<a href="[field:typelink/]">[field:typename/]</a>
</li>
{/dede:channel}

四、带缩进显示(网站地图样式)

{dede:channelartlist row='100' typeid='top'}
<h3>{dede:field name='typename'/}</h3>
{dede:channel type='son' noself='yes'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
{/dede:channelartlist}

五、获取栏目总数

{dede:sql sql="SELECT COUNT(*) as total FROM dede_arctype"}
共[field:total/]个栏目
{/dede:sql}
提示:调用所有栏目时注意设置足够大的row值。如果栏目数量超过100个,建议使用SQL方式直接查询,避免使用嵌套标签影响性能。