下面我将从最基础到复杂,为您展示如何用一句代码(一个标签)来调用各种 DedeCMS 变量。

(图片来源网络,侵删)
最核心的变量调用代码结构
所有 DedeCMS 的变量调用都遵循这个基本结构:
{dede:变量名 属性='值'}
[field:子变量名/]
{/dede:变量名}
{dede:变量名 ...}是开始标签,用来定义你要获取什么类型的数据(比如文章、栏目、会员等)。[field:子变量名/]是内部标签,用来显示具体变量的值。{/dede:变量名}是结束标签。
常用变量调用示例(“一句代码”实现)
以下是一些最常用、最核心的变量调用示例,它们都是独立的“一句代码”。
调用文章列表中的变量(在列表页 arclist.htm 中)
这是最常见的情况,比如在首页或栏目页显示文章列表。
-
显示文章标题:
(图片来源网络,侵删){dede:arclist row='10' titlelen='30'} <a href="[field:arcurl/]">[field:title/]</a> {/dede:arclist}row='10':调用10篇文章。titlelen='30'长度限制为30个字符。[field:arcurl/]:文章链接。[field:title/]。
-
显示文章摘要(带省略号):
{dede:arclist row='5'} [field:description function='cn_substr(@me,100)'/]... {/dede:arclist}[field:description/]:function='cn_substr(@me,100)':使用函数截取摘要前100个字符。
-
显示文章发布时间(格式化日期):
{dede:arclist row='5'} [field:pubdate function='strftime("%Y-%m-%d",@me)'/] {/dede:arclist}function='strftime(...)':使用PHP的strftime函数来格式化日期时间戳。
-
显示文章缩略图:
{dede:arclist row='5'} <img src="[field:litpic/]" alt="[field:title/]"> {/dede:arclist}[field:litpic/]:文章的缩略图地址。
调用单个文章内容页的变量(在文章页 article_article.htm 中)
当用户点击一篇文章进入详情页时,你需要调用这篇文章自身的变量。

(图片来源网络,侵删)
-
显示文章标题:
{dede:field.title/}- 这是一个简化的写法,等同于
{dede:field name='title'/}。
- 这是一个简化的写法,等同于
-
显示文章内容:
{dede:field.body/}[field.body/]是文章的主体内容。
-
显示文章来源:
{dede:field.source/} -
显示文章作者:
{dede:field.writer/} -
显示文章点击数:
{dede:field.click/}
调用栏目相关变量(在栏目页或文章页中)
-
获取当前栏目的名称:
{dede:field name='typename'/} -
获取当前栏目的链接:
{dede:field name='typeurl'/}
调用系统全局变量(在任意页面)
这些是网站的全局配置信息。
-
显示网站名称:
{dede:global.cfg_webname/} -
显示网站关键词:
{dede:global.cfg_keywords/} -
显示网站描述:
{dede:global.cfg_description/}
调用循环外的变量(自由列表)
有时候你只想调用一个特定的变量,而不需要循环。
- 调用指定ID的文章标题:
{dede:arclist idlist='1'} [field:title/] {/dede:arclist}idlist='1'表示只调用文章ID为1的文章,因为只调用一条,所以循环只执行一次。
进阶:使用函数处理变量
这是DedeCMS非常强大的功能,可以在调用变量时直接进行处理。
-
并添加“更多”链接:
[field:title function='(strlen("@me")>30 ? cn_substr("@me",30)."..." : "@me")'/]strlen("@me")长度。cn_substr("@me",30)前30个字符。- 三元运算符,如果标题长度大于30,则截断并加省略号,否则原样显示。
-
将摘要中的HTML标签去掉:
[field:description function='htmlspecialchars(strip_tags(@me))'/]
strip_tags(@me):去除所有HTML标签。htmlspecialchars(...):将特殊字符转换为HTML实体,防止XSS攻击。
DedeCMS的“一句代码”通常指的就是一个 {dede:...} 标签,你需要根据需求选择正确的标签名(如 arclist, field)和属性(如 row, idlist),然后在内部用 [field:...] 来获取具体的值。
| 需求 | 核心代码(一句代码) | 说明 |
|---|---|---|
| 获取文章列表 | {dede:arclist row='10'}[field:title/]{/dede:arclist} |
最常用的列表调用标签 |
| 获取文章标题 | {dede:field.title/} |
在文章详情页调用当前文章标题 |
| 获取栏目名称 | {dede:field.name='typename'/} |
在栏目页或文章页调用当前栏目名 |
| 获取网站名称 | {dede:global.cfg_webname/} |
在任意页面调用网站全局配置 |
| 获取带格式的日期 | [field:pubdate function='strftime("%Y-%m-%d",@me)'/] |
在列表页调用并格式化文章发布时间 |
