织梦cms首页调取所有栏目

织梦CMS首页调取所有栏目的方法

在网站首页一次性展示所有栏目及其内容,可以通过channelartlist标签快速实现。

一、使用channelartlist调取所有栏目

{dede:channelartlist row='20' typeid='top'}
<div class="block">
<h2>{dede:field name='typename'/}</h2>
{dede:arclist row='5' titlelen='40'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</div>
{/dede:channelartlist}

二、只调用有内容的栏目

{dede:channelartlist row='20'}
{dede:arclist row='1'}
<h2>{dede:field name='typename'/}</h2>
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
{/dede:channelartlist}

三、用SQL调取所有栏目及统计

{dede:sql sql="SELECT t.*,COUNT(a.id) as cnt FROM dede_arctype t LEFT JOIN dede_archives a ON t.id=a.typeid GROUP BY t.id ORDER BY t.sortrank"}
<div>
<a href="[field:typedir/]">[field:typename/]</a>
<span>([field:cnt/]篇)</span>
</div>
{/dede:sql}

四、分页调取(栏目过多时)

栏目超过20个时,考虑只展示顶级栏目作为导航入口,而非全部展开内容。可以在首页使用channel type='top'做分类导航,用户点击后进入具体栏目查看内容。

建议:首页调取所有栏目时注意控制数据量,row值过大可能导致页面加载缓慢。建议顶级栏目用channel做导航入口,内容较多的栏目再额外展示文章列表。