问题排查思路(请按顺序执行)
请不要随意操作,先从最简单、最常见的原因开始排查。

(图片来源网络,侵删)
第一步:检查数据表是否正常(最核心的原因)
这是最常见的原因,通常是网站迁移、服务器更换、数据库操作失误或服务器空间不足导致的。
现象描述
- 后台编辑文章时,自定义字段的值还在。
- 前台显示时,该字段的值为空。
- 或者,后台编辑时发现自定义字段的值已经丢失了。
解决方案
- 登录你的网站数据库管理工具(通常是 phpMyAdmin)。
- 找到对应的数据库。
- 找到你的数据表,DedeCMS 的文章数据表默认是
dede_archives,而自定义字段的值通常存储在一个以dede_addon开头的表中,表名后缀是模型ID,如果你用的是“文章”模型(默认模型ID为1),那么表名就是dede_addonarticle。 - 检查目标表是否存在:
- 如果这个表不存在,那肯定是误删了,你需要从备份中恢复这个表,或者重新创建一个结构相同的空表(这需要你了解DedeCMS的表结构,不推荐新手操作)。
- 如果这个表存在,请继续下一步。
- 检查目标表中的数据:
- 进入
dede_addonarticle表。 - 找到你出问题的那篇文章(可以根据文章ID或标题搜索)。
- 查看该文章对应的记录,检查你那个自定义字段的值是否为空。
- 如果值为空:说明数据已经丢失,你需要从备份中恢复这条记录,或者手动重新填写。
- 如果值不为空:说明数据还在,问题可能出在模板调用或程序逻辑上,请跳到第二步继续排查。
- 进入
第二步:检查模板标签调用是否正确
如果数据库里数据是好的,那问题很可能出在显示文章的模板文件上。
现象描述
- 数据库里自定义字段的值正常。
- 前台和后台编辑时都显示为空。
解决方案
-
找到模板文件:
- 登录DedeCMS后台。
- 进入【模板】->【默认模板管理】。
- 找到你当前使用的文章内容页模板,通常是
article_article.htm。
-
检查标签语法:
(图片来源网络,侵删)- 在模板文件中,找到调用你自定义字段的标签。
- 标准调用格式:
{dede:field.你的自定义字段名/} - 例如:如果你的自定义字段名是
yuedu,那么标签就应该是{dede:field.yuedu/}。
-
常见错误:
- 字段名错误:检查
field.后面的字段名是否完全正确,包括大小写和特殊字符,一个字符错误都可能导致调用失败。 - 标签格式错误:确保标签前后没有多余的空格或字符。
- 使用了错误的标签:有些人会错误地使用
{dede:field name='你的自定义字段名'/},虽然有时也能用,但{dede:field.字段名/}是最标准、最不容易出错的写法。
- 字段名错误:检查
第三步:检查字段是否在后台被禁用或删除
这是一个容易被忽略的人为操作错误。
解决方案
- 登录DedeCMS后台。
- 进入【核心】->【内容模型管理】。
- 点击你所用模型(如“普通文章”)后面的【字段管理】。
- 在字段列表中,找到你的那个自定义字段。
- 检查该字段的【状态】是否为“禁用”,如果是,请将其启用。
- 检查该字段是否被删除了,如果被删除,你需要重新添加这个字段,并确保字段名和之前完全一致,否则之前存的数据将无法读取。
第四步:检查网站目录或文件权限问题
通常在网站迁移或服务器环境变更后出现。
现象描述
- 后台编辑时,自定义字段输入框无法填写或保存。
- 或者,保存后刷新又变回原样。
解决方案
- 使用FTP工具连接你的服务器。
- 检查DedeCMS的安装目录,特别是
data目录和include目录的权限。- 目录权限应设置为
755。 - 文件权限应设置为
644。 data目录下的cache和session等子目录权限可能需要设置为777(但这是不安全的做法,如果必须设置,请确保你的网站代码是安全的)。
- 目录权限应设置为
- 不正确的权限会导致程序无法写入或读取数据,从而造成字段为空或无法保存的问题。
第五步:检查PHP版本或程序文件损坏
在升级PHP版本或网站被攻击后可能发生。

(图片来源网络,侵删)
解决方案
- 检查PHP版本:联系你的空间商,确认服务器是否最近升级了PHP版本,DedeCMS 5.7对高版本PHP(如PHP 7.4+)的兼容性不是100%,可能导致一些未知问题,可以尝试切换回PHP 5.6或7.0版本进行测试。
- 检查核心文件:如果怀疑是程序文件损坏,可以下载一个与你当前使用版本完全一致的DedeCMS安装包,然后用FTP工具将安装包里的
include目录和dede目录下的文件(注意:覆盖前务必备份你修改过的文件,如config.php)覆盖到你的网站服务器上,这可以修复因文件损坏导致的功能异常。
第六步:检查服务器磁盘空间
这是一个非常基础但致命的问题。
解决方案
- 登录你的服务器控制面板(如cPanel、宝塔面板等)。
- 查看剩余的磁盘空间。
- 如果磁盘空间已满(或接近满),数据库将无法写入任何新数据,甚至可能导致现有数据读取异常,清理不必要的文件即可。
总结与建议
遇到“Dede自定义字段变空”的问题,请按照以下顺序排查:
- 首要检查:数据库
dede_addon*表中数据是否存在。这是90%的可能性所在。 - 其次检查:模板文件中的标签
{dede:field.字段名/}是否写错。 - 再次检查:后台模型管理中,该字段是否被禁用或删除。
- 最后检查:目录权限、PHP版本、磁盘空间等环境问题。
最好的预防措施是:
- 定期备份数据库和网站文件,当问题发生时,一个干净的备份是最好的解药。
- 在进行任何可能影响数据库的操作(如迁移、升级)前,务必备份。
- 不要随意删除或修改数据库表结构。
希望以上详细的排查步骤能帮助你解决问题!如果问题依然存在,请提供更多背景信息,问题是在什么操作后出现的?前台和后台都空吗?这样我可以更精准地定位问题。
