织梦cms列表页调用指定栏目

问题场景

在织梦CMS的列表页模板中,有时需要在某个栏目的列表页面中调用另一个指定栏目的内容,例如在"新闻中心"列表页的侧边栏显示"热门推荐"栏目的文章,或者在底部展示其他相关栏目的信息。这就涉及到列表页跨栏目调用的技术。

方法一:使用 arclist 标签指定 typeid

{dede:arclist} 标签支持通过 typeid 属性指定要调用文章的栏目ID:

<!-- 调用指定栏目的文章列表 -->
{dede:arclist typeid='3' row='10' titlelen='40' orderby='pubdate'}
<li>
  <a href="[field:arcurl/]" title="[field:title/]">
    [field:title/]
  </a>
  <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}

<!-- 调用多个指定栏目(用逗号分隔) -->
{dede:arclist typeid='3,5,8' row='15' orderby='click'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}

方法二:调用指定栏目及其子栏目

使用 channel 属性可以同时调用该栏目下所有子栏目的文章:

<!-- type='son':调用指定栏目及其子栏目 -->
{dede:arclist typeid='3' row='20' channel='son'}
<div class="article-item">
  <a href="[field:arcurl/]">[field:title/]</a>
  <span class="date">[field:pubdate function="GetDateMK(@me)"/]</span>
</div>
{/dede:arclist}

方法三:使用 channelartlist 标签获取子栏目内容

当需要显示某个父栏目下所有子栏目的文章时:

<!-- 获取ID为1的顶级栏目下所有子栏目的文章 -->
{dede:channelartlist typeid='1' row='5'}
<div class="sub-channel">
  <h3>{dede:field name='typename'/}</h3>
  <ul>
    {dede:arclist row='5' titlelen='30'}
    <li><a href="[field:arcurl/]">[field:title/]</a></li>
    {/dede:arclist}
  </ul>
</div>
{/dede:channelartlist}

方法四:使用 flag 属性调用推荐/头条文章

在列表页调用指定栏目的推荐或置顶文章:

<!-- 调用指定栏目的推荐文章 -->
{dede:arclist typeid='3' flag='c' row='5' titlelen='36'}
<li>
  <a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}

<!-- flag参数说明 -->
<!-- h=头条 c=推荐 f=幻灯片 a=特荐 s=滚动 b=加粗 p=图片 j=跳转 -->

方法五:使用 SQL 标签灵活查询

当需要更复杂的筛选条件时:

<!-- SQL方式调用指定栏目的最新文章 -->
{dede:sql sql="SELECT id,title,typeid,litpic,pubdate 
FROM dede_archives 
WHERE typeid IN(3,5,8) AND arcrank=0 
ORDER BY pubdate DESC LIMIT 10"}
<li>
  <a href="/plus/view.php?aid=[field:id/]">
    [field:title/]
  </a>
  <em>[field:pubdate function="MyDate('m-d',@me)"/]</em>
</li>
{/dede:sql}

方法六:在列表页调用指定栏目的栏目信息

不仅调用文章,还可以显示目标栏目的基本信息:

<!-- 显示指定栏目的名称、描述等 -->
{dede:type typeid='5'}
<div class="recommend-channel">
  <h3><a href="[field:typelink/]">[field:typename/]</a></h3>
  <p>[field:description/]</p>
</div>
{/dede:type}
实用技巧:在列表页使用 {dede:global.cfg_cmspath/} 获取系统安装路径前缀,确保生成的链接路径正确,避免出现404错误。

常用调用场景汇总

场景推荐标签
侧边栏最新文章{dede:arclist typeid='X' row='10'}
显示子栏目+文章{dede:channelartlist}
热门/推荐文章{dede:arclist flag='c' orderby='click'}
跨栏目混合调用{dede:sql}