织梦cms顶级栏目显示子栏目文章

织梦CMS顶级栏目显示所有子栏目文章

在顶级栏目的列表页面中显示其所有子栏目下的文章内容,可以通过channelartlist标签或SQL方式实现。

一、使用channelartlist(推荐)

{dede:channelartlist}
<div>
<h3>{dede:field name='typename'/}</h3>
{dede:arclist row='5' titlelen='50'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</div>
{/dede:channelartlist}

在顶级栏目的封面模板中使用,自动遍历所有子栏目并展示每个子栏目的文章。

二、使用SQL获取子栏目ID再调用文章

{dede:php}
$typeid=$refObj->TypeLink->TypeInfos['id'];
$sql="SELECT id FROM dede_arctype WHERE reid=$typeid";
$dsql->Execute('sub',$sql);
$subIds=array();
while($row=$dsql->GetArray('sub')){$subIds[]=$row['id'];}
$subIdsStr=implode(',',$subIds);
{/dede:php}
{dede:arclist typeid='[field:php]echo $subIdsStr;[/field:php]' row='20'}
<li>...</li>
{/dede:arclist}

三、直接汇总所有子栏目文章

{dede:sql sql="SELECT a.*,t.typename as tname FROM dede_archives a LEFT JOIN dede_arctype t ON a.typeid=t.id WHERE t.reid=1 ORDER BY a.pubdate DESC LIMIT 30"}
<li>
<span>[field:tname/]</span>
<a href="/plus/view.php?aid=[field:id/]">[field:title/]</a>
</li>
{/dede:sql}

四、带分类显示的汇总列表

按照子栏目分组显示各自的最新文章,每个子栏目的小标题下展示其文章列表。

建议:首选channelartlist标签,代码简洁且自动遍历。如果子栏目超过20个,改用SQL方式提升性能。