dede循环调子栏目下面的文章

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

下面我将为你详细讲解如何使用 {dede:arclist},并提供从简单到复杂的多种实例。

dede循环调子栏目下面的文章
(图片来源网络,侵删)

核心标记:{dede:arclist}

{dede:arclist} 是 DedeCMS 用于获取文章列表的自定义标记,功能非常强大,参数众多,要调用指定栏目的文章,关键在于使用 typeid 参数。


基础语法与常用参数

{dede:arclist typeid='' row='' titlelen='' orderby=''}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
{/dede:arclist}

常用参数详解:

参数 说明 示例
typeid 指定栏目ID,调用该栏目下的文章,多个栏目ID用英文逗号 隔开。 typeid='2' (调用ID为2的栏目)
row 调用文章的数量。 row='10' (调用10篇文章)
orderby 排序方式,常用值:pubdate (发布时间,默认)、click (点击量)、id (文章ID)。 orderby='click' (按点击量从高到低)
idlist 调用指定ID的文章,多个ID用逗号隔开,与 typeid 互斥。 idlist='5,8,12'
channelid 指定频道ID,默认为1 (文章频道)。 channelid='1'
limit 限制起始位置和记录数,格式为 起始位置,记录数 limit='0,5' (从第0条开始,取5条)
noflag 排除特定标记的文章,排除头条 'h' noflag='h'
sub 是否包含子栏目。sub='0' 或不写为不包含,sub='1' 为包含所有子栏目。 typeid='2' sub='1' (调用ID为2的栏目及其所有子栏目的文章)

常用字段变量 (在 [] 中使用)

字段 说明
[field:title/]
[field:arcurl/] 文章链接
[field:pubdate/] 发布时间 (时间戳格式)
[field:description/] 文章摘要
[field:litpic/] 文章缩略图
[field:click/] 文章点击量
[field:id/] 文章ID

实战案例

案例1:调用指定ID栏目的文章(最常用)

假设你要调用栏目ID为 5 的文章,并显示标题、发布时间和摘要,每篇文章带缩略图。

步骤1:找到栏目ID 在 DedeCMS 后台,【核心】-> 【栏目管理】,找到你想要调用的栏目,查看其“栏目ID”,新闻资讯的ID是5。

dede循环调子栏目下面的文章
(图片来源网络,侵删)

步骤2:编写代码 将以下代码放入你想要显示文章列表的模板文件中 (如 index.htm, list_article.htm 等)。

<h2>新闻资讯</h2>
<ul class="news-list">
    {dede:arclist typeid='5' row='5' titlelen='40' orderby='pubdate'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">
                <img src="[field:litpic/]" alt="[field:title/]">
            </a>
            <div class="news-info">
                <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
                <p class="news-desc">[field:description function='cn_substr(@me, 100)'/]...</p>
                <span class="news-date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
            </div>
        </li>
    {/dede:arclist}
</ul>

代码解释:

  • typeid='5': 调用ID为5的栏目。
  • row='5': 只显示5篇文章,len='40'`: 标题最多显示40个字符。
  • orderby='pubdate': 按发布时间排序。
  • [field:litpic/]: 调用文章的缩略图。
  • [field:description function='cn_substr(@me, 100)'/]: 调用文章摘要,并使用 cn_substr 函数截取前100个字符。

案例2:调用当前栏目及其所有子栏目的文章

在列表页模板 (如 list_article.htm) 中,你经常需要调用当前栏目及其所有子栏目的文章,这时需要使用 typeidsub 参数。

<h2>栏目列表</h2>
<ul>
    {dede:arclist typeid='~id' row='10' sub='1'}
        <li><a href="[field:arcurl/]">[field:title/]</a> - [field:pubdate function="MyDate('Y-m-d',@me)"]</li>
    {dede:arclist}
</ul>

代码解释:

  • typeid='~id': 这是一个特殊用法,~id 表示获取当前页面的栏目ID。
  • sub='1': 表示包含当前栏目的所有子栏目。
  • 这个组合的意思就是:调用当前栏目及其所有子栏目下的文章

案例3:调用多个指定栏目的文章

如果需要同时调用栏目ID为 37 的文章,用英文逗号隔开ID即可。

<h2>产品中心 & 案例展示</h2>
<ul>
    {dede:arclist typeid='3,7' row='8' titlelen='30'}
        <li><a href="[field:arcurl/]">[field:title/]</a></li>
    {/dede:arclist}
</ul>

案例4:带分页的文章列表调用

在列表页模板中,{dede:arclist} 通常与 {dede:pagelist} 配合使用来实现分页效果。

<h2>文章列表</h2>
{dede:list pagesize='10'}
    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
    <p>[field:description/]...</p>
    <p>发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"]</p>
{/dede:list}
<!-- 分页代码 -->
<div class="dede_pages">
    <ul>
        {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='5'/}
    </ul>
</div>

注意:

  • 在列表页,{dede:list} 标记用于循环输出当前栏目下的文章,它本身就带分页功能。
  • {dede:arclist} 通常用于首页、封面页或其他页面调用固定栏目的文章,它本身不带分页功能,如果需要在非列表页实现分页,需要更复杂的处理,但 {dede:list} 是专门为列表页设计的。

总结与排错

  1. 栏目ID是关键:确保你使用的 typeid 是正确的,如果调用不出来,第一件事就是去后台核对栏目ID。
  2. 模板缓存:修改模板后,如果前台没有立即生效,请到后台【生成】->【更新HTML】,或者点击【一键更新网站】来更新缓存。
  3. 检查标记语法:确保 {dede:arclist}{/dede:arclist} 成对出现,参数中的引号是英文半角引号。
  4. 字段调用:确保使用的字段变量(如 [field:title/])是 {dede:arclist} 支持的。

通过以上方法和案例,你应该可以灵活地在 DedeCMS 中调用任何你想要的子栏目文章列表了。

-- 展开阅读全文 --
头像
如何去掉织梦CMS首页的index.php?
« 上一篇 2025-12-31
织梦dedecms仿站学习
下一篇 » 2025-12-31

相关文章

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

目录[+]