dede如何调用当前栏目文章列表?

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

核心标签

无论使用哪种方法,核心的标签都是 {dede:arclist}

dede调用当前栏目文章列表
(图片来源网络,侵删)

最简单、最直接的方法(推荐)

这是最常用、最简洁的方法,适用于绝大多数场景,比如在栏目列表页(list_*.php)或首页(index.php)调用当前栏目的子栏目文章。

适用场景

  • 在当前栏目页(如 list_1.php)调用该栏目的文章。
  • 在首页(index.php)调用指定栏目(如栏目ID为1)的文章。
  • 在首页调用当前栏目(通过 typeid 自动获取)的文章。

代码示例:

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

代码解析:

dede调用当前栏目文章列表
(图片来源网络,侵删)
  • {dede:arclist}:文章列表调用开始标签。
  • row='10':表示获取10条文章记录,你可以根据需要修改这个数字,len='30'`:表示文章标题的长度,最多显示30个字符(一个汉字算一个字符)。
  • [field:arcurl/]:文章的链接地址。
  • [field:title/]:文章的标题。
  • [field:pubdate function="MyDate('Y-m-d',@me)"/]:文章的发布日期。
    • pubdate 是发布时间的字段。
    • function="MyDate('Y-m-d',@me)" 是一个自定义函数,用于将时间戳格式化为 年-月-日 的格式,你也可以使用 MyDate('m-d', @me) 来显示 月-日
  • {/dede:arclist}:文章列表调用结束标签。

关键点:当 {dede:arclist} 标签被放在一个栏目模板(如 list_article.htm)中时,它会自动识别当前所在的栏目,无需任何额外参数即可调用该栏目的文章。


使用 typeid 参数明确指定栏目

如果你想在非当前页面(比如首页)调用某个特定栏目的文章,或者你想强制调用某个栏目的文章,就需要使用 typeid 参数。

适用场景

  • 在首页调用“公司新闻”栏目(假设其ID为2)的文章。
  • 在一个子栏目页调用其父栏目的文章。

代码示例:

dede调用当前栏目文章列表
(图片来源网络,侵删)
<!-- 假设我们要调用栏目ID为 2 的文章 -->
{dede:arclist typeid='2' row='8' titlelen='20'}
    <li>
        <span>[field:pubdate function="MyDate('m-d',@me)"/]</span>
        <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
    </li>
{/dede:arclist}

代码解析:

  • typeid='2':这是最关键的参数,它明确告诉 DedeCMS 要从栏目ID为2的栏目中获取文章,你可以将 2 替换成任何你想要调用的栏目ID。
  • 你可以在后台“栏目管理”中查看每个栏目的ID。

调用当前栏目及其子栏目的文章(常用)

有时候我们希望一个栏目页不仅显示本栏目的文章,还显示其所有下级栏目的文章,这可以通过 typeidson 参数配合实现。

适用场景

  • 制作一个“产品中心”栏目,该栏目下有“产品A”、“产品B”等子栏目,在“产品中心”的列表页,希望同时展示所有产品的文章。

代码示例:

{dede:arclist typeid='当前栏目ID' row='15' titlelen='40' son='yes'}
    <dl>
        <dt><a href="[field:arcurl/]">[field:title/]</a></dt>
        <dd>[field:description function='cn_substr(@me, 100)'/]...</dd>
    </dl>
{/dede:arclist}

代码解析:

  • typeid='当前栏目ID':这里需要填写当前栏目的ID,如果“产品中心”栏目的ID是 5,那么这里就写 typeid='5'
  • son='yes':这个参数的作用是“包含子栏目”,设置了它,typeid 参数指定的栏目及其所有下级栏目的文章都会被调用。

如何获取“当前栏目ID”? 你可以在模板文件中直接写死ID,也可以通过 DedeCMS 的全局变量 {dede:field.id/} 来动态获取,这样模板更具通用性。

<!-- 使用全局变量动态获取当前栏目ID -->
{dede:arclist typeid='{dede:field.id/}' row='15' son='yes'}
    <!-- ... -->
{/dede:arclist}

常用属性和字段扩展

{dede:arclist} 非常灵活,可以添加很多属性来控制输出内容。

常用属性:

属性名 说明 示例
row 调用文章数量 row='10'
infolen 内容简介长度 infolen='100'
orderby 排序方式,默认为 pubdate(按发布时间) orderby='hot' (按点击量), orderby='commends' (按推荐), orderby='id' (按文章ID)
orderway 排序方式,desc(降序,默认)或 asc(升序) orderway='asc'
channelid 指定频道ID,默认为1(文章) channelid='1'
limit 限制起始位置和数量,如 limit='0,10' (从第0条开始,取10条) limit='10,5' (从第10条开始,取5条)

常用字段(使用 [field:xxx/] 调用):

| 字段名 | 说明 | | :--- | :--- | | 文章标题 | | arcurl | 文章链接 | | pubdate | 发布时间(时间戳) | | description | 需要在后台“文档关键词维护”中设置) | | litpic | 文章缩略图 | | click | 文章点击量 | | typename | 所属栏目名称 | | id | 文章ID |

综合示例:

{dede:arclist 
    row='6' len='40' 
    orderby='click' 
    orderway='desc' 
    typeid='2' 
    channelid='1'
    infolen='100'
}
    <div class="news-item">
        <a href="[field:arcurl/]" class="thumb">
            <img src="[field:litpic/]" alt="[field:title/]" />
        </a>
        <div class="news-info">
            <h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
            <p class="summary">[field:description/]</p>
            <div class="meta">
                <span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"]</span>
                <span class="click">阅读([field:click/])</span>
            </div>
        </div>
    </div>
{/dede:arclist}

这个示例调用了栏目ID为2的、点击量最高的6篇文章,并显示了缩略图、标题、日期和点击量。

需求 推荐方法 关键代码
在当前栏目页调用本栏文章 方法一 {dede:arclist row='10'}
在任意位置调用指定栏目文章 方法二 {dede:arclist typeid='2' row='10'}
调用当前栏目及其所有子栏目文章 方法三 {dede:arclist typeid='{dede:field.id/}' son='yes'}
需要更复杂的排序和显示 方法四 结合 orderby, limit, litpic 等属性和字段

希望这份详细的指南能帮助你熟练地在 DedeCMS 中调用文章列表!

-- 展开阅读全文 --
头像
dede模板首页左侧横向菜单如何制作?
« 上一篇 昨天
C语言中void foo函数如何定义与使用?
下一篇 » 昨天

相关文章

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

目录[+]