核心基础:{dede:}
织梦绝大多数变量都是通过 {dede:} 标签系统来调用的,这个标签的结构通常如下:
(图片来源网络,侵删)
{dede:标签名 属性='值'}
// 循环体内的内容,这里可以调用变量
{/dede:标签名}
- 标签名:决定了你要调用什么类型的数据,
arclist (文章列表), list (栏目列表), field (文章字段) 等。
- 属性:用来筛选和格式化数据,
typeid (栏目ID), titlelen (标题长度) 等。
- 变量:在标签体内,通过特定的语法(如
[field:title/])来输出数据。
常用变量调用详解
全局变量
这些变量在整个网站的任何地方(包括首页、列表页、内容页)都可以直接调用,通常用于显示网站的基本信息。
调用方法:直接使用 {dede:全局变量名/}
常用全局变量示例:
变量名
说明
示例代码
cfg_webname
网站名称
<title>{dede:global.cfg_webname/}</title>
cfg_weburl
网站根目录URL
<link rel="canonical" href="{dede:global.cfg_weburl/}" />
cfg_powerby
网页版权信息
<footer>{dede:global.cfg_powerby/}</footer>
cfg_description
网站描述
<meta name="description" content="{dede:global.cfg_description/}" />
cfg_keywords
网站关键词
<meta name="keywords" content="{dede:global.cfg_keywords/}" />
页变量
这些变量只在页(article_article.htm)或文章列表页(list_*.htm)的特定循环体内有效。
(图片来源网络,侵删)
A. 在文章内容页 (article_article.htm) 调用
页,你可以直接调用当前文章的字段,通常使用 {dede:field.属性名/} 的形式。
常用字段变量示例:
| 变量名 | 说明 | 示例代码 |
| :--- | :--- | :--- | | 文章标题 | <h1>{dede:field.title/}</h1> |
| pubdate | 发布时间 | <span>发布时间:{dede:field.pubdate function='MyDate('Y-m-d', @me)'/}</span> |
| source | 文章来源 | <span>来源:{dede:field.source/}</span> |
| writer | 作者 | <span>作者:{dede:field.writer/}</span> |
| click | 点击量 | <span>点击:{dede:field.click/}</span> |
| body | 文章正文 | {dede:field.body/} |
| description | | <meta name="description" content="{dede:field.description function='html2text(@me)'/}" /> |
高级用法:使用 function 进行格式化
(图片来源网络,侵删)
织梦支持对变量使用PHP函数进行二次处理,非常强大。
// 格式化日期,将 Unix 时间戳转为 Y-m-d H:i:s 格式
{dede:field.pubdate function='MyDate('Y-m-d H:i:s', @me)'/}
只显示前20个字符
{dede:field.title function='cn_substr(@me, 20)'/}
// 将文章正文中的图片地址加上绝对路径
{dede:field.body function='str_replace('src="/', 'src="{dede:global.cfg_basehost/}/', @me)'/}
B. 在文章列表页 (list_*.htm) 调用
在列表页,你需要使用 {dede:arclist} 标签来循环输出文章列表,然后在循环体内调用每篇文章的变量。
调用方法:{dede:arilogue 属性='值'}...[field:变量名/]...{/dede:arclist}
示例代码(在列表页模板中):
<ul>
{dede:arclist typeid='1' titlelen='30' row='10'}
<li>
<!-- [field:title/] 是文章标题 -->
<a href="[field:arcurl/]">[field:title/]</a>
<!-- [field:pubdate function='MyDate('Y-m-d', @me)'] 是格式化后的发布日期 -->
<span>[field:pubdate function='MyDate('Y-m-d', @me)']</span>
</li>
{/dede:arclist}
</ul>
常用 arclist 属性和循环体内变量:
arclist 属性
说明
循环体内变量
说明
typeid
指定栏目ID
[field:title/]
row
调用文章数量
[field:arcurl/]
文章链接
infolen
摘要长度
[field:description/]
文章摘要
imgwidth/imgheight
缩略图尺寸
[field:litpic/]
缩略图地址
orderby
排序方式(如 click 点击量)
[field:click/]
点击量
栏目变量
这些变量用于调用栏目的信息,通常在首页、列表页或内容页调用。
A. 在首页或列表页调用当前栏目信息
使用 {dede:global.name/} 可以在列表页直接获取当前栏目的名称。
示例:
// 在 list_*.htm 中,这会显示当前列表页的栏目名
<h2>{dede:global.name/}</h2>
B. 在内容页调用栏目信息
页,使用 {dede:field.typeid/} 可以获取当前文章所属的栏目ID,然后通过这个ID去获取其他栏目信息。
示例(在 article_article.htm 中):
// 获取当前文章的栏目名称
{dede:gettype typeid='[field:typeid/]'}
当前栏目:<a href="[field:typelink/]">[field:typename/]</a>
{/dede:gettype}
// 更简洁的写法(如果只需要名称)
{dede:field name='typename'/}
自定义字段变量
这是织梦非常强大的功能,允许你为不同的模型添加额外的字段,产品价格”、“规格”、“下载链接”等。
调用方法:与普通字段完全相同,直接调用字段名即可。
前提条件:
- 在后台“模型” -> “内容模型管理”中为你的模型添加了自定义字段(
price, guige)。
- 发布文章时,为这些字段填写了内容。
示例:
假设你添加了一个名为 price 的自定义字段。
// 在文章内容页调用
<h3>价格:¥{dede:field.price/}</h3>
// 在文章列表页调用
{dede:arclist typeid='1' row='5'}
<div class="product">
<h4>[field:title/]</h4>
<p>价格:¥[field:price/]</p> <!-- 直接调用自定义字段 -->
</div>
{/dede:arclist}
PHP 变量(高级用法)
当 {dede:} 标签无法满足复杂需求时,你可以直接在模板文件中嵌入PHP代码。
调用方法:使用 {dede:php}
示例1:获取并显示当前登录的管理员用户名
{dede:php}
$uid = $cfg_ml->M_LoginID; // 获取当前登录用户ID
$row = $dsql->GetOne("SELECT uname FROM `dede_admin` WHERE id='$uid'");
if(is_array($row)){
echo '欢迎,' . $row['uname'];
}
{/dede:php}
示例2:调用一个自定义的函数
在 /include/common.func.php 文件中添加你的PHP函数:
function getHelloWorld() {
return 'Hello, World from PHP!';
}
然后在模板中调用它:
{dede:php}
echo getHelloWorld();
{/dede:php}
总结与最佳实践
- 先分清位置:你是在首页、列表页还是内容页?不同位置可用的变量不同。
- 善用官方文档:织梦官方文档是查询所有标签和变量的最佳来源。
- 优先使用
{dede:}:它们是专门为模板设计的,安全且高效。
- 谨慎使用
{dede:php}:虽然强大,但直接在模板中写PHP代码会降低模板的可维护性,并可能带来安全风险,尽量将复杂的逻辑放在后台PHP文件中,模板只负责显示。
- 自定义字段是利器:充分利用自定义字段,可以让你的网站功能更加丰富和灵活。
希望这份详细的指南能帮助你熟练掌握织梦的变量调用!
织梦绝大多数变量都是通过 {dede:} 标签系统来调用的,这个标签的结构通常如下:

{dede:标签名 属性='值'}
// 循环体内的内容,这里可以调用变量
{/dede:标签名}
- 标签名:决定了你要调用什么类型的数据,
arclist(文章列表),list(栏目列表),field(文章字段) 等。 - 属性:用来筛选和格式化数据,
typeid(栏目ID),titlelen(标题长度) 等。 - 变量:在标签体内,通过特定的语法(如
[field:title/])来输出数据。
常用变量调用详解
全局变量
这些变量在整个网站的任何地方(包括首页、列表页、内容页)都可以直接调用,通常用于显示网站的基本信息。
调用方法:直接使用 {dede:全局变量名/}
常用全局变量示例:
| 变量名 | 说明 | 示例代码 |
|---|---|---|
cfg_webname |
网站名称 | <title>{dede:global.cfg_webname/}</title> |
cfg_weburl |
网站根目录URL | <link rel="canonical" href="{dede:global.cfg_weburl/}" /> |
cfg_powerby |
网页版权信息 | <footer>{dede:global.cfg_powerby/}</footer> |
cfg_description |
网站描述 | <meta name="description" content="{dede:global.cfg_description/}" /> |
cfg_keywords |
网站关键词 | <meta name="keywords" content="{dede:global.cfg_keywords/}" /> |
页变量
这些变量只在页(article_article.htm)或文章列表页(list_*.htm)的特定循环体内有效。

A. 在文章内容页 (article_article.htm) 调用
页,你可以直接调用当前文章的字段,通常使用 {dede:field.属性名/} 的形式。
常用字段变量示例:
| 变量名 | 说明 | 示例代码 |
| :--- | :--- | :--- | | 文章标题 | <h1>{dede:field.title/}</h1> |
| pubdate | 发布时间 | <span>发布时间:{dede:field.pubdate function='MyDate('Y-m-d', @me)'/}</span> |
| source | 文章来源 | <span>来源:{dede:field.source/}</span> |
| writer | 作者 | <span>作者:{dede:field.writer/}</span> |
| click | 点击量 | <span>点击:{dede:field.click/}</span> |
| body | 文章正文 | {dede:field.body/} |
| description | | <meta name="description" content="{dede:field.description function='html2text(@me)'/}" /> |
高级用法:使用 function 进行格式化

织梦支持对变量使用PHP函数进行二次处理,非常强大。
// 格式化日期,将 Unix 时间戳转为 Y-m-d H:i:s 格式
{dede:field.pubdate function='MyDate('Y-m-d H:i:s', @me)'/}
只显示前20个字符
{dede:field.title function='cn_substr(@me, 20)'/}
// 将文章正文中的图片地址加上绝对路径
{dede:field.body function='str_replace('src="/', 'src="{dede:global.cfg_basehost/}/', @me)'/}
B. 在文章列表页 (list_*.htm) 调用
在列表页,你需要使用 {dede:arclist} 标签来循环输出文章列表,然后在循环体内调用每篇文章的变量。
调用方法:{dede:arilogue 属性='值'}...[field:变量名/]...{/dede:arclist}
示例代码(在列表页模板中):
<ul>
{dede:arclist typeid='1' titlelen='30' row='10'}
<li>
<!-- [field:title/] 是文章标题 -->
<a href="[field:arcurl/]">[field:title/]</a>
<!-- [field:pubdate function='MyDate('Y-m-d', @me)'] 是格式化后的发布日期 -->
<span>[field:pubdate function='MyDate('Y-m-d', @me)']</span>
</li>
{/dede:arclist}
</ul>
常用 arclist 属性和循环体内变量:
arclist 属性 |
说明 | 循环体内变量 | 说明 |
|---|---|---|---|
typeid |
指定栏目ID | [field:title/] |
|
row |
调用文章数量 | [field:arcurl/] |
文章链接 |
infolen |
摘要长度 | [field:description/] |
文章摘要 |
imgwidth/imgheight |
缩略图尺寸 | [field:litpic/] |
缩略图地址 |
orderby |
排序方式(如 click 点击量) |
[field:click/] |
点击量 |
栏目变量
这些变量用于调用栏目的信息,通常在首页、列表页或内容页调用。
A. 在首页或列表页调用当前栏目信息
使用 {dede:global.name/} 可以在列表页直接获取当前栏目的名称。
示例:
// 在 list_*.htm 中,这会显示当前列表页的栏目名
<h2>{dede:global.name/}</h2>
B. 在内容页调用栏目信息
页,使用 {dede:field.typeid/} 可以获取当前文章所属的栏目ID,然后通过这个ID去获取其他栏目信息。
示例(在 article_article.htm 中):
// 获取当前文章的栏目名称
{dede:gettype typeid='[field:typeid/]'}
当前栏目:<a href="[field:typelink/]">[field:typename/]</a>
{/dede:gettype}
// 更简洁的写法(如果只需要名称)
{dede:field name='typename'/}
自定义字段变量
这是织梦非常强大的功能,允许你为不同的模型添加额外的字段,产品价格”、“规格”、“下载链接”等。
调用方法:与普通字段完全相同,直接调用字段名即可。
前提条件:
- 在后台“模型” -> “内容模型管理”中为你的模型添加了自定义字段(
price,guige)。 - 发布文章时,为这些字段填写了内容。
示例:
假设你添加了一个名为 price 的自定义字段。
// 在文章内容页调用
<h3>价格:¥{dede:field.price/}</h3>
// 在文章列表页调用
{dede:arclist typeid='1' row='5'}
<div class="product">
<h4>[field:title/]</h4>
<p>价格:¥[field:price/]</p> <!-- 直接调用自定义字段 -->
</div>
{/dede:arclist}
PHP 变量(高级用法)
当 {dede:} 标签无法满足复杂需求时,你可以直接在模板文件中嵌入PHP代码。
调用方法:使用 示例1:获取并显示当前登录的管理员用户名 示例2:调用一个自定义的函数 在 然后在模板中调用它: 希望这份详细的指南能帮助你熟练掌握织梦的变量调用!{dede:php}
{dede:php}
$uid = $cfg_ml->M_LoginID; // 获取当前登录用户ID
$row = $dsql->GetOne("SELECT uname FROM `dede_admin` WHERE id='$uid'");
if(is_array($row)){
echo '欢迎,' . $row['uname'];
}
{/dede:php}
/include/common.func.php 文件中添加你的PHP函数:function getHelloWorld() {
return 'Hello, World from PHP!';
}
{dede:php}
echo getHelloWorld();
{/dede:php}
总结与最佳实践
{dede:}:它们是专门为模板设计的,安全且高效。{dede:php}:虽然强大,但直接在模板中写PHP代码会降低模板的可维护性,并可能带来安全风险,尽量将复杂的逻辑放在后台PHP文件中,模板只负责显示。
