织梦CMS自定义字段完全教程
自定义字段是织梦CMS(DedeCMS)最强大、最灵活的功能之一,它允许你为不同的栏目(模型)添加额外的字段,从而突破系统默认字段的限制,满足各种个性化的网站内容需求。
- 新闻网站:可以添加“来源”、“作者”、“导读视频”、“关键字”等字段。
- 产品网站:可以添加“产品规格”、“市场价格”、“优惠价格”、“库存数量”、“产品手册下载链接”等字段。
- 小说网站:可以添加“小说状态”(连载/完结)、“字数”、“最新章节”、“读者评分”等字段。
- 招聘网站:可以添加“薪资范围”、“工作地点”、“学历要求”、“公司福利”等字段。
第一部分:核心概念
在开始操作前,我们先理解几个关键概念:
- 模型:可以理解为内容的“骨架”或“模板”,系统默认有“文章模型”、“图片模型”等,你可以为不同类型的栏目创建不同的模型。
- 字段:构成模型的“零件”,文章模型”默认有标题、作者、来源、内容等字段,自定义字段就是由我们自己创建的额外零件。
- 栏目的“文件夹”,每个栏目都必须选择一个模型,选择了哪个模型,这个栏目下的文章就能使用该模型的所有字段。
- 字段类型:决定了你如何输入和存储数据,常见的类型有:
- 文本:单行文本,如作者名。
- 文本area:多行文本,如简介。
- 编辑器:带格式的富文本编辑器,如详细内容。
- 单选:提供多个选项,只能选一个,如“是否推荐”。
- 多选:提供多个选项,可以选多个,如“适用人群”。
- 数字:只能输入数字,如价格、库存。
- 时间:日期时间选择器,如发布时间、活动截止时间。
- 文件/多媒体:上传附件,如PDF手册、视频文件。
- 图片:上传单张或多张图片,如产品图、缩略图。
- 下拉:类似单选,但选项可以动态管理。
第二部分:实战操作步骤
我们将通过一个完整的实例来学习如何添加和使用自定义字段。
目标: 在“产品”栏目中,添加“市场价格”和“产品手册”两个字段。
创建或选择合适的模型
如果你的“产品”栏目已经使用了一个自定义的“产品模型”,可以直接跳到步骤二,如果没有,你需要创建一个。
- 登录织梦后台。
- 进入 【核心】 -> 模型管理】。
- 点击 【增加新模型】。
- 填写模型信息:
- 模型名称:
产品模型(这是在后台显示的名字) - 表前缀:
dede_archives_(默认即可,系统会自动添加后缀,如dede_archives_addonproduct) - 名称:
product(这是程序识别的ID,只能用英文、数字、下划线) - 字段数量:根据你的需要填写,比如先填10个,不够后面再加。
- 描述:
用于存放产品信息(可选)
- 模型名称:
- 点击 【确定】。
- 重要:创建模型后,系统会提示你“请更新栏目缓存”,请务必前往 【系统】 -> 【系统基本参数】 -> 【性能选项】,点击右上角的 【更新栏目缓存】,然后保存,否则新模型可能不会在栏目列表中出现。
为模型添加自定义字段
我们为刚创建的“产品模型”添加字段。
- 进入 【核心】 -> 【自定义字段管理】。
- 在页面顶部的 内容模型 下拉框中,选择你刚才创建的 产品模型。
- 点击 【增加新字段】。
添加字段一:市场价格
- 字段名称:
market_price(必须为英文或数字,用于程序调用) - 字段提示:
市场价格(在前台表单中显示给用户的提示文字) - 字段类型:
数字(因为价格是数字) - 默认值:留空
- 字段大小:
20(输入框的宽度) - 最大长度:
10(最多输入10个字符) - 是否为空:
是(允许不填写) - 后台显示:
是(在后台发布页显示) - 前台显示:
是(在前台内容页显示) - 字段列表:
否(是否在后台的内容列表页显示此列) - 自动生成HTML:
否(对于非文本类型,通常选否) - 备用数据:留空
- 参数说明:留空
点击 【保存】。
添加字段二:产品手册
- 字段名称:
manual - 字段提示:
产品手册 (PDF格式) - 字段类型:
文件(用于上传附件) - 默认值:留空
- 文件保存目录:
uploads/manual/(上传文件的存放目录,可以自定义) - 文件最大大小:
2048(单位KB,即2MB) - 文件类型限制:
pdf(限制只能上传PDF文件,用逗号分隔,如pdf,doc,docx) - 是否为空:
是 - 后台显示:
是 - 前台显示:
是 - 字段列表:
否 - 自动生成HTML:
是(这个选项非常重要!选“是”后,系统会自动生成一个下载链接,你无需手动写代码) - 参数说明:留空
点击 【保存】。
提示:添加完所有字段后,可以点击 【字段管理】 页面右上角的 【一键更新所有栏目HTML】 和 【一键更新所有文档HTML】,以确保所有页面都正确加载了新字段。
将模型应用到栏目
- 进入 【栏目】 -> 【所有栏目管理】。
- 找到你的“产品”栏目,点击后面的 【更改】。
- 在栏目编辑页面,找到 设置】。
- 在 模型】 下拉框中,选择你刚才创建的 产品模型。
- 保存。
在后台发布内容
- 进入 】。
- 在“选择栏目”时,选择你配置好的“产品”栏目。
- 你会发现,除了默认的标题、内容等字段外,还出现了我们自定义的 市场价格 和 产品手册 字段。
- 填写信息并上传文件,【发布】 或 【保存】。
第三部分:前台调用与显示
发布后,最关键的一步就是如何在网站上展示出来。
基本调用方法
在织梦模板文件(通常是 article_article.htm 或 list_article.htm)中,使用 field 标签调用。
- 语法:
{field:字段名称/} - 示例:
- 调用市场价格:
市场价格:{field:market_price/} 元 - 调用产品手册:
下载手册:{field:manual/}
- 调用市场价格:
高级应用:if 判断与 php 代码
场景:产品手册”上传了,就显示下载链接;如果没有,就不显示或显示提示文字。
使用织梦的 if
{dede:if field='manual' is='notnull'}
<a href="{field:manual/}" target="_blank">点击下载产品手册</a>
{else /}
<p>暂无产品手册</p>
{/dede:if}
使用 php 代码(更灵活)
{dede:php}
if(@me['manual']){
echo "<a href='".$this->Fields['manual']."' target='_blank'>点击下载产品手册</a>";
} else {
echo "<p>暂无产品手册</p>";
}
{/dede:php}
注意:使用 php 标签时,字段的值存储在 $this->Fields['字段名'] 数组中。
列表页调用
在列表模板(如 示例(在 Q1: 为什么我添加了字段,在前台或后台都看不到?
A1: 检查以下几点: Q2: 我想在文章列表页也显示这个字段,但列表页模板里没有 Q3: 自定义字段的数据存放在哪里?
A3: 主要存放在数据库的 Q4: 如何批量给已有文章添加自定义字段的数据?
A4: 这是个高级操作,通常需要通过SQL语句或编写小插件来完成,对于普通用户,建议直接手动修改或在后台“内容维护”中找到对应的文章进行编辑,如果数据量很大,可以寻求二次开发帮助。 Q5: “自动生成HTML”选项有什么用?
A5: 当你的字段类型是“文件”、“图片”、“编辑器”等时,开启此选项,织梦会自动为你生成好前台显示的HTML代码,对于“文件”类型,它会自动生成一个 自定义字段是织梦CMS的灵魂功能,掌握它你就能用织梦搭建出几乎所有类型的信息网站,核心流程就是: 创建模型 -> 添加字段 -> 应用到栏目 -> 发布内容 -> 前台调用 多加练习,你会发现它的强大之处,希望这份教程能帮到你!list_article.htm)中,同样可以使用 field 标签,但通常需要配合 arclist 或 list
list_article.htm 中):{dede:list pagesize='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<p>市场价:[field:market_price/] 元</p>
{dede:if field='manual' is='notnull'}
<a href="[field:manual/]" target="_blank">[下载手册]</a>
{/dede:if}
</li>
{/dede:list}
第四部分:常见问题与技巧
系统 -> 系统基本参数 -> 性能选项。自定义字段管理 中检查。自定义字段管理 页面点击更新按钮。{field:xxx/} 的字段名称是否写错。field
A2: 列表页需要通过循环标签(如 {dede:list} 或 {dede:arclist})来调用,在这些标签内部,使用 [field:xxx/] 来调用当前循环项的字段值,如上面列表页调用的例子。dede_archives 表(存放文章基本信息)和 dede_addon表(存放附加字段信息)中。dede_addon表 的名字是你创建模型时系统自动生成的,如 dede_addonproduct。<a> 标签作为下载链接;对于“图片”类型,它会自动生成 <img> 标签,这能极大简化你的模板开发工作。
