问题根源分析
要解决这个问题,首先需要理解DedeCMS显示发布人的流程,一个完整的显示链条包含以下几个环节:

(图片来源网络,侵删)
- 后台发布/编辑文章时:是否选择了或填写了“作者”字段。
- 文章保存到数据库时:
dede_archives这张核心文章表中的writer字段是否有值。 - 前台模板调用时:模板文件中是否使用了正确的标签来调用作者信息。
- 后台列表/编辑页显示时:列表模板或编辑页面是否调用了作者字段。
任何一个环节出错,都可能导致最终不显示发布人。
解决方案(按步骤排查)
请按照以下步骤逐一检查和修改,99%的情况都能解决。
第一步:检查后台发布/编辑文章时的操作
这是最常见也是最容易被忽略的环节。
-
发布新文章时:
(图片来源网络,侵删)- 在后台发布文章的页面,找到“作者”这一栏。
- 情况A:如果下拉列表是空的,或者没有你想要的作者,请先去“系统” -> “系统基本参数” -> “核心设置”里,检查“默认管理员ID”是否正确。
- 情况B:直接在下拉列表中选择你想要显示的作者。请务必确保选择了作者,而不是让它为空。
-
编辑已有文章时:
- ” -> “所有档案”,找到一篇不显示作者的文章。
- 点击“编辑”,在编辑页面检查“作者”字段是否为空,如果为空,请重新选择一个作者,更新”文章。
第二步:检查数据库中的数据
如果后台选择后仍然不显示,我们需要确认数据是否真的被保存了。
- 登录你的网站数据库管理工具(如phpMyAdmin)。
- 找到你的DedeCMS数据库,打开
dede_archives表。 - 找到那篇不显示作者的文章对应的记录。
- 查看其中的
writer字段。writer字段有值(比如是admin或者你选择的用户名),说明数据是正确的,问题出在前台模板或后台列表的调用上,请直接跳到 第三步。writer字段为空,说明数据没有被正确保存,这可能是由权限问题或程序bug导致,请尝试重新发布一篇新文章,并确保在第一步中正确选择了作者,如果还是不行,请继续排查。
第三步:检查前台文章页模板调用
这是最核心的环节,通常问题出在这里,DedeCMS默认使用文章内容页模板 article_article.htm。
-
进入后台“模板” -> “默认模板管理”。
(图片来源网络,侵删) -
找到并点击“文章内容页模板”后面的“[修改]”按钮。
-
在模板代码中,找到调用作者标签的位置,通常是这样的格式:
<span>作者:</span>{dede:field.writer /}或者在一些旧版本或特定模板中,可能是:
<span>作者:</span>[field:writer/]
-
确保这个标签存在并且没有被注释掉(没有被
<!-- -->包围)。 -
标签的语法是否正确:
{dede:field.writer /}是当前文章的作者,优先级最高。{dede:adminname /}是当前登录后台的管理员。[field:writer/]是旧版标签,在某些模板中也有效。
-
如果修改后不生效:请确保修改后点击“保存”,然后去“生成” -> “一键更新网站” -> “更新HTML”,更新一下文章页面,有时候浏览器缓存也会导致看不到效果,可以按
Ctrl+F5强制刷新页面。
第四步:检查后台文章列表页显示
如果你指的是在后台“所有档案”列表里看不到作者列,可以按以下方法解决。
- 进入后台“系统” -> “系统基本参数” -> “核心设置”。
- 找到“后台列表显示选项”这一项。
- 在输入框里,确保包含了
writer字段,通常默认的格式是:id,title,writer,senddate。 - 如果没有
writer,请手动加上,然后用英文逗号与其他字段隔开。 - 点击“保存”即可。
第五步:检查会员模型(如果使用会员投稿)
如果你的网站开启了会员投稿功能,并且文章是由会员发布的,那么情况会稍有不同。
- 后台发布时:选择“会员”作者,并选择对应的会员。
- 前台模板调用:标签依然是
{dede:field.writer /},它会显示会员的用户名。 - 数据库检查:
dede_archives表的writer字段会存储会员的用户名。
第六步:检查文件权限和缓存
如果以上方法都无效,可以尝试这两个“终极”操作。
- 清除缓存:
- 后台缓存:进入“系统” -> “清除缓存”,点击“一键更新网站”。
- 服务器缓存:如果使用的是OPcache等,请通过服务器面板或命令行重启PHP服务。
- 检查文件权限:
- 确保网站目录下的
data文件夹及其子文件夹(如cache)具有正确的读写权限(通常是 755 或 777,但 777 有安全风险,建议先尝试 755)。
- 确保网站目录下的
总结与排查清单
如果遇到“DedeCMS后台不显示发布人”的问题,请按此清单快速排查:
| 检查项 | 解决方法 | |
|---|---|---|
| 后台发布 | 发布/编辑文章时,“作者”字段是否为空? | 必须手动选择一个作者,不能留空。 |
| 数据库 | dede_archives 表中对应文章的 writer 字段是否有值? |
如果为空,重新发布文章并选择作者。 |
| 前台模板 | article_article.htm 中是否存在 {dede:field.writer /} 或 [field:writer/]
| |
| 后台列表 | 后台“所有档案”列表里是否没有作者列? | 去“核心设置”的“后台列表显示选项”里添加 writer。 |
| 会员投稿 | 文章是否由会员发布? | 确保选择了正确的会员作者,模板调用方式不变。 |
| 缓存与权限 | 是否修改了模板但看不到效果? | 清除所有缓存,并检查 data 目录权限。 |
按照这个流程,你一定能定位并解决问题,如果问题依旧存在,可能是你的DedeCMS版本存在特定bug,可以考虑升级到最新稳定版或寻求更专业的技术支持。
