dede 如何调用文章

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

下面我将从基础到进阶,详细讲解如何调用文章,并提供最常用和最实用的代码示例。

dede 如何调用文章
(图片来源网络,侵删)

核心概念:DedeCMS 的标签

DedeCMS 的调用功能主要通过其内置的 {dede:} 系列标签实现,这些标签可以理解为一个“指令”,告诉系统去哪里获取数据,以及如何展示这些数据。

基本结构:

{dede:标签名 属性名='属性值'}
    <!-- 循环体,用于展示每一条数据 -->
    <a href="[field:arcurl/]">[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
{/dede:标签名}
  • {dede:标签名 ...}: 开始标签,定义要调用的内容类型和筛选条件。
  • 属性名='属性值': 定义调用的条件,比如调用多少条 (row)、从哪里开始调用 (start)、按什么排序 (orderby) 等。
  • [field:字段名/]: 在循环体内,用于显示单篇文章的具体字段,如标题、日期、点击量等。
  • function="自定义函数": 对字段值进行格式化处理,比如日期格式化、截取文字长度等。
  • {/dede:标签名}: 结束标签,表示调用结束。

最常用的文章调用标签:arclist

arclist 是调用文章列表最常用、最灵活的标签,适用于首页、栏目页、列表页等各种场景。

基础调用:调用指定栏目下的文章

这是最简单的用法,调用某个栏目下的最新几篇文章。

dede 如何调用文章
(图片来源网络,侵删)

示例:调用栏目ID为 1 的最新 10 篇文章

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

常用属性说明:

属性名 说明 示例
typeid 指定栏目ID,多个ID用逗号隔开,如 '1,2,3',如果为空或为 0,表示调用所有栏目(推荐使用 channelid 代替)。 typeid='1'
row 调用文章数量 row='10'
infolen 内容简介长度(字符数)。 infolen='100'
orderby 排序方式,常用值:pubdate (发布时间,默认), hot (点击量), sortrank (后台排序), id (文章ID)。 orderby='hot'
orderway 排序方向desc (降序,默认), asc (升序)。 orderway='asc'
channelid 指定模型IDchannelid='-1' 表示调用所有栏目,比 typeid='0' 更常用。 channelid='-1'
limit 限制起始和结束,格式为 起始数,数量limit='0,5' 表示从第1条开始取5条;limit='5,10' 表示从第6条开始取10条。 limit='0,5'
flag 文章属性,常用值:h (头条), c (推荐), p (图片), s (跳转),多个用 隔开,如 flag='h|c' flag='h'

进阶调用:常用字段与函数

在循环体内,我们可以使用 [field:字段名/] 来调用文章的各种信息。

常用字段:

dede 如何调用文章
(图片来源网络,侵删)
字段名 说明
[field:title/]
[field:arcurl/] 文章链接(URL)
[field:pubdate/] 发布时间(时间戳)
[field:click/] 点击量
[field:litpic/] 文章缩略图
[field:description/] 文章简介
[field:typedir/] 栏目目录
[field:id/] 文章ID

常用函数(对字段进行处理):

  • 日期格式化function="MyDate('格式',@me)"
    • [field:pubdate function="MyDate('Y-m-d H:i',@me)"] -> 2025-10-27 15:30
    • [field:pubdate function="MyDate('Y年m月d日',@me)"] -> 2025年10月27日
  • 文字截断function="cn_substr(@me, 长度)"
    • [field:title function="cn_substr(@me, 20)"] -> 标题只显示前20个字符
  • 去除HTML标签function="Html2Text(@me)"
    • [field:description function="Html2Text(@me)"] -> 获取纯文本简介

实战场景示例

场景1:首页调用最新文章(带缩略图)

调用所有栏目的最新8篇文章,显示标题、日期、缩略图和简介。

{dede:arclist row='8' titlelen='30' orderby='pubdate' orderway='desc'}
    <div class="news-item">
        <a href="[field:arcurl/]" title="[field:title/]">
            <img src="[field:litpic/]" alt="[field:title/]">
        </a>
        <h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
        <p class="date">[field:pubdate function="MyDate('Y-m-d',@me)"]</p>
        <p class="summary">[field:description function="cn_substr(@me, 80)"]...</p>
    </div>
{/dede:arclist}

场景2:调用指定栏目的子栏目文章

调用栏目ID为 2 的所有直接子栏目下的最新文章。

{dede:arclist typeid='2' row='5'}
    <li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
{/dede:arclist}

注意typeid='2' 会调用ID为2的栏目本身及其所有子栏目的文章,如果只想调用其直接子栏目,需要在后台栏目设置中,确保“选项”里“支持投稿”等勾选正确,或者更高级的做法是配合SQL查询。

场景3:调用带有特定属性的文章(如“头条”)

调用所有标记为“头条”属性的最新5篇文章。

{dede:arclist flag='h' row='5' titlelen='40'}
    <li class="headlines">
        <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
    </li>
{/dede:arclist}

其他重要调用标签

除了 arclist,还有几个标签也经常使用。

loop:万能循环标签

loop 可以直接执行SQL语句,灵活性最高,适合 arclist 无法满足的复杂需求。

示例:调用文章ID从 10 到 20 的文章

{dede:loop table='dede_archives' sort='id' row='11' if='id>=10 and id<=20'}
    <a href="[field:arcurl/]">[field:title/]</a>
{/dede:loop}
  • table: 要查询的表名(dede_archives 是文章主表)。
  • sort: 排序字段。
  • row: 循环次数。
  • if: SQL查询的 WHERE 条件。

sql:执行任意SQL语句

loop 类似,但 sql 标签可以写完整的SQL语句,并支持 {dede:field} 来获取外部变量。

示例:调用栏目ID为1的栏目名称

{dede:sql sql='SELECT typename FROM dede_arctype WHERE id = ~typeid~'}
    当前栏目是:[field:typename/]
{/dede:sql}
  • ~typeid~: 这种写法可以将外部变量(如当前栏目ID)传入SQL语句中。

模板文件位置

这些调用代码通常放在 DedeCMS 的模板文件中,主要路径是:

/templets/default/

  • index.htm: 首页模板
  • list_article.htm: 文章列表页模板
  • article_article.htm: 文章内容页模板
  • 在后台“模板” -> “默认模板管理”中可以修改这些文件。
调用需求 推荐标签 关键属性/字段
调用列表页文章 {dede:arclist} typeid, row, orderby, titlelen, [field:arcurl], [field:title]
调用单篇文章详情 {dede:field} name='body' (文章内容), name='title' (文章标题)
调用栏目信息 {dede:field} name='typename' (栏目名), name='typedir' (栏目目录)
执行复杂查询 {dede:loop}{dede:sql} table, sql, if

掌握 arclist 标签及其属性、字段和函数,已经可以解决 DedeCMS 中 90% 的文章调用问题,遇到更复杂的需求,再考虑使用 loopsql 标签,希望这份详细的指南能帮助你!

-- 展开阅读全文 --
头像
C语言三目运算符的用法与注意事项是什么?
« 上一篇 今天
织梦电子行业网站模板如何快速搭建?
下一篇 » 今天

相关文章

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

目录[+]