第一步:在后台添加自定义字段
这是所有操作的基础,如果你还没有添加字段,请先完成这一步。

-
登录 DedeCMS 后台。
-
进入 【核心】 -> 【内容模型管理】。
-
找到你当前文章所在的模型(通常是“文章模型”),点击其后面的 【字段管理】。
-
在字段管理页面,点击 【添加新字段】。
(图片来源网络,侵删) -
填写字段信息:
- 字段名称: 这是你在数据库中存储数据的列名,只能使用英文字母、数字和下划线,
myauthor,bookname,price。请务必记住这个名字。 - 字段提示: 这个会显示在后台发布文章时,让你填写这个字段的标签,如果你填
myauthor,这里可以填作者。 - 字段类型: 根据你的需求选择。
- 文本 (text): 最常用,用于短文本,如作者、来源、关键词等。
- 编辑器 (editor): 用于大段文本,如文章摘要、详细介绍等,它会生成一个富文本编辑器。
- 单选 (radio): 用于在几个固定选项中选择一个,如“难度等级:简单、中等、困难”。
- 多选 (checkbox): 用于在多个固定选项中选择多个,如“标签:技术、生活、娱乐”。
- 数字 (num): 用于纯数字,如价格、页数等。
- 图片 (img): 用于上传单张图片,如产品图、作者头像等。
- 附件 (media): 用于上传文件,如PDF、视频、音频等。
- 默认值: (可选)设置一个默认值。
- 是否为空: 选择“否”表示此字段为必填项。
- 字段名称: 这是你在数据库中存储数据的列名,只能使用英文字母、数字和下划线,
-
点击 【保存】。
示例:
我们为“文章模型”添加一个名为 myauthor (字段名称) 的文本字段,提示为“本文作者”。
添加成功后,去后台 】 或 】,你就会在发布页面上看到你刚刚添加的“本文作者”输入框了,填写一些测试数据并保存文章。
第二步:在内容页模板中调用自定义字段
你的自定义字段数据已经存在数据库里了,接下来就是如何在文章详情页显示它。
直接调用(适用于文本、数字、单选等简单字段)
这是最直接的方法,使用 DedeCMS 的 语法格式: 示例:
假设我们添加的字段名称是 DedeCMS 会自动将其替换为你在后台为该文章填写的“本文作者”的值。 如果你想在字段有值时才显示,或者根据不同的值显示不同的内容,可以使用 语法格式: 示例1:显示作者,如果为空则不显示任何东西 示例2:根据单选字段的值显示不同文字
假设我们有一个字段 如果你添加的是“编辑器”类型字段,它的调用方式和普通文本一样,但它会输出带有 HTML 标签的富文本内容。 语法格式: 示例:
假设我们添加了一个名为 这样, 图片字段的调用稍微复杂一点,因为它不仅存储图片路径,还可能存储图片的描述( DedeCMS 提供了专门的 语法格式: 示例:
假设我们添加了一个名为 方法 4.1:只显示图片 方法 4.2:显示图片及其描述
图片字段存储的数据通常是 这段代码会先分割字符串,然后分别取出图片路径和描述,最后组合成一个完整的 问题1:调用自定义字段后,前台页面显示 原因:这通常是因为模板引擎没有解析这些标签,最常见的原因是模板缓存问题。
解决方案: 问题2:后台有字段,前台模板也调用了,但就是没有数据。 原因: 问题3:如何调用多选(checkbox)字段? 多选字段存储的数据是类似 示例:
假设字段名为 希望这份详细的指南能帮助你成功地在 DedeCMS 内容页中调用自定义字段!field
{dede:field.你的字段名称/}
myauthor,那么在 article_article.htm 模板中,你可以这样调用:<p>本文作者:{dede:field.myauthor/}</p>
带条件判断的调用(适用于单选、多选、布尔值等)
if 条件语句。{dede:field.你的字段名称 runphp='yes'}
if(@me != '') {
@me = "显示的前缀:" . @me . "显示的后缀";
} else {
@me = "字段为空时显示的内容";
}
{/dede:field}
runphp='yes': 表示开启 PHP 解析。@me: 这是一个特殊变量,代表当前字段的值。<span>
{dede:field.myauthor runphp='yes'}
if(@me != '') {
@me = "作者:" . @me;
} else {
@me = "";
}
{/dede:field}
</span>
difficulty (字段名称),选项是“简单”、“中等”、“困难”。难度等级:
{dede:field.difficulty runphp='yes'}
if(@me == '简单') {
@me = "<span style='color:green;'>简单</span>";
} elseif(@me == '中等') {
@me = "<span style='color:orange;'>中等</span>";
} elseif(@me == '困难') {
@me = "<span style='color:red;'>困难</span>";
} else {
@me = "未设置";
}
{/dede:field}
调用编辑器(editor)类型字段
{dede:field.你的字段名称/}
myintro 的编辑器字段,用来存放“补充说明”。<div class="supplement-info">
<h3>补充说明</h3>
{dede:field.myintro/}
</div>
{dede:field.myintro/} 就会输出你在后台编辑器中输入的所有格式化文本、图片等。
调用图片(img)类型字段
alt)。img 标签来处理。{dede:field.你的字段名称 function='GetImgUrl(@me)'/}
GetImgUrl() 是 DedeCMS 的一个内置函数,用于从图片字段的数据中提取出纯粹的图片 URL。bookcover 的图片字段。<img src="{dede:field.bookcover function='GetImgUrl(@me)'}" alt="书籍封面">
图片路径||图片描述 这样的格式,我们可以用 split 函数来分割它。{dede:field.bookcover runphp='yes'}
list($imgurl, $alt) = explode('||', @me);
$imgurl = trim($imgurl);
$alt = trim($alt);
@me = "<img src='{$imgurl}' alt='{$alt}' />";
{/dede:field}
<img>
常见问题与解决方案
{dede:field.myfield/} 这串代码,而不是实际内容。
选项1,选项3,选项5 这样的用逗号隔开的字符串,你可以用 explode 函数来分割它。tags,选项是“技术”、“生活”、“娱乐”。文章标签:
{dede:field.tags runphp='yes'}
$tags = explode(',', @me);
$result = '';
foreach($tags as $tag) {
$tag = trim($tag);
if($tag) {
// 使用超链接形式展示,并链接到搜索该标签的页面
$result .= "<a href='/plus/search.php?keyword=" . urlencode($tag) . "'>" . $tag . "</a> ";
}
}
@me = $result;
{/dede:field}
你的需求
对应的字段类型
模板调用代码
显示作者、来源等短文本
文本
{dede:field.字段名/}
显示补充说明等大段富文本
编辑器
{dede:field.字段名/}
显示价格、页数等数字
数字
{dede:field.字段名/}
显示单张图片(如封面)
图片
<img src="{dede:field.字段名 function='GetImgUrl(@me)'}">
根据选项显示不同样式
单选
使用
runphp='yes' 进行 if/else 判断
显示多个标签
多选
使用
runphp='yes' 和 explode() 分割处理
