EP07. “数据库与内容显示类错误速查”
🔒 登录后可标记已读这篇笔记速查网站内容显示异常、数据库连不上、白屏这类错误的成因和解法。500 Internal Server Error 已独立成篇,这里收录的是「网站还能打开、但内容显示不对/局部功能坏掉」这类问题。
重点内容
语法错误 / Parse Error
代码里有语法错误(常见于 functions.php),出现的提示会明确标注问题所在的文件和行数,比如:
Parse error- syntax error, unexpected $end in /public_html/site1/wp-content/themes/my-theme/functions.php on line 278
修复步骤:
- 用 FileZilla 之类的 FTP/SFTP 工具连上网站
- 找到提示里指出的文件(通常在当前主题文件夹里),右键选 View/Edit
- 找到提示的那一行代码,多数是漏了括号或多余字符
- 保存文件,FTP 询问是否覆盖服务器上的文件时选 Yes
💡 想避免以后再犯,用 WPCode 这类插件——它会在保存代码片段前先验证语法,防止直接把网站弄坏。
死亡白屏(White Screen of Death, WSoD)
整个网站变成空白页面,没有任何错误提示,是最难排查的错误之一——因为没有任何线索能判断该从哪里下手。多半是 PHP 内存耗尽或服务器配置问题,也可能只出现在网站的特定区块。
排查顺序:
- 禁用插件——WSoD 最常见的元凶就是有问题的插件,全部停用测试
- 禁用主题——用 SFTP 把主题换成 WordPress 默认主题测试
- 开启 WordPress Debug 模式——能直接在页面上看到具体错误信息
- 清缓存——就算问题已经修好,缓存插件仍可能让你看到过期的旧文件
- 提高内存限制——改
php.ini调高内存上限
以上方法解决大多数 WSoD 情况;仍无法解决就要联络主机支援团队。
建立数据库连接时出错(Error Establishing a Database Connection)
网站连不上数据库,通常是用户手动填错/改错了数据库凭据(host、用户名、密码),偶尔是数据库服务器本身无响应或损坏。
排查步骤:
- 用 SFTP 找到根目录的
wp-config.php,右键 View/Edit - 到 phpMyAdmin 核对正确的数据库主机名、用户名、密码、数据库名称,跟
wp-config.php里的是否一致,不一致就替换更正 - 如果核对没问题错误仍在,可以在
wp-config.php加入一行启用自动数据库修复工具:
define( 'WP_ALLOW_REPAIR', true );
- 保存上传后,浏览器访问
https://你的网址/wp-admin/maint/repair.php运行修复脚本,点按钮执行修复,页面会显示修复完成的数据表清单
[截图:repair.php 数据库修复页面,修复完成后列出的数据表清单]
- ⚠️ 修复完成后别忘了把
WP_ALLOW_REPAIR这一行从wp-config.php删掉,不然这个修复入口会一直暴露在外面
WordPress 文章出现 404 错误(但后台正常)
访客点单篇文章出现 404 Not Found,但网站其他部分(包括后台)都能正常访问——最常见成因是固定链接(permalink)设置或 rewrite rules 出问题。
修复方法:
- 后台 Settings → Permalinks,什么都不改直接点 Save Changes,重新生成
.htaccess规则 - 如果还不行,手动检查/替换
.htaccess内容为默认规则(详见《500 Internal Server Error 完整解决指南》里的 .htaccess 代码片段)
侧边栏跑到内容下方(Sidebar Below Content)
侧边栏本来该显示在内容旁边,却跑到了内容下面——通常是主题的 HTML/CSS 出问题,常见于最近编辑过主题代码或加过自定义代码片段之后。
排查重点两处:
- 多余的
<div>标签:没有正确开启/关闭的 HTML 标签会破坏排版 - CSS 页边距(margin)不正确:
style.css里的页边距设置错误,侧边栏旁边就没有足够空间
💡 可以用 W3C 标记验证服务检查页面代码,帮助更快定位问题来源。
混合内容错误(Mixed Content Error)
网站已启用 HTTPS/SSL,但部分资源仍用 HTTP 网址加载,导致浏览器报错——虽然不一定影响网站功能,但会影响 SEO 和用户体验。
修复方法:找出哪些资源用了不安全的 HTTP 网址加载,逐一改成 HTTPS——可以用插件自动处理,也能手动修改。
错过定时发布(Missed Schedule Post)
排程发布的文章到了时间却没有自动发布,卡在后台变成「Missed schedule」。
成因:负责触发发布动作的「cron job」在该文章排定的时间点没有被正确触发。
解决办法:安装 Scheduled Post Trigger 这类免费轻量插件,确保负责发布排程文章的 cron job 能按时正常运作。
因维护模式卡死网站(Briefly Unavailable for Scheduled Maintenance)
WordPress 更新时会自动把网站切换到维护模式;如果更新过程被中断,网站可能会「卡」在维护模式,前台后台都打不开。
解决办法:用 SFTP 连上网站根目录,删除名为 .maintenance 的文件,网站会立刻恢复正常——但要记得手动重新执行一次刚才被中断的更新。
网站出现「严重错误」提示(There Has Been a Critical Error on This Website)
WordPress 遇到致命错误导致网站打不开时显示的提示信息,比传统的死亡白屏更友善,但背后问题依然严重。
成因:插件/主题损坏、自定义代码片段出错、或 WordPress 核心文件损坏。幸运的话 WordPress 会发邮件带一个 Recovery Mode 连结,能直接进后台修复模式排查。
解决办法:需要 debug 定位问题、停用有问题的插件/主题、检查网站错误日志(做法参照《500 Internal Server Error 完整解决指南》里的 Debug Log 方案)。
内存耗尽错误(Memory Exhausted)
可能表现为死亡白屏,或明确的错误信息:
Fatal error: Allowed memory size of 33554432 bytes exhausted...
成因:某个脚本或插件超过默认分配的内存上限。
解决办法:调高 PHP 内存限制,具体步骤见《500 Internal Server Error 完整解决指南》方案 6。
最大执行时间超过限制(Maximum Execution Time Exceeded)
WordPress 用 PHP 写成,为了防止服务器被滥用,PHP 脚本的运行时间有上限——不同主机商设置的上限高低不同,脚本一旦超过这个上限就会报这个错。
解决办法:调高 PHP 的 max_execution_time 设置(跟内存限制一样常需要联络主机商或改 php.ini)。
保存/发布失败(Updating Failed / Publishing Failed)
编辑文章/页面时看到「Updating Failed」或「Publishing Failed」,通常代表 WordPress 连不上 REST API(区块编辑器靠这个 API 在背景跟服务器通信)。
常见成因:网站网址设置错误、插件冲突、.htaccess 或服务器设置问题、主机商拦截了 REST API 请求。
排查方法:检查网站网址设置(见《修改网站 URL 的四种方法》)、暂时停用插件测试、确认 REST API 端点没有被安全插件拦截。
网站没有即时显示最新改动
改了内容但网站前台看起来没变化,最常见原因是缓存——浏览器或缓存插件暂存了旧版本的页面。
解决办法:清除浏览器缓存和网站的缓存插件缓存,重新加载确认。
常见误区
- ❌ 死亡白屏(WSoD)没头绪就整个重装 WordPress——按顺序先排查插件、再排查主题、再开 Debug 模式看具体错误,通常不需要重装
- ❌ 数据库连接错误改完
wp-config.php凭据后忘记删除WP_ALLOW_REPAIR这行——修复完成后要记得移除,不然这个修复工具入口会一直暴露 - ❌ 网站卡在维护模式就直接重新安装 WordPress——只是删掉根目录的
.maintenance文件就能恢复,不用做到重装这么大动作 - ❌ 排程文章常常错过发布时间,每次都手动处理——装 Scheduled Post Trigger 这类插件,从根本上解决 cron job 不稳定的问题
- 💡 内容没有即时更新,先怀疑是缓存问题——清缓存往往比检查代码更快找到答案
Sources
Blog / Website:
- 63 Most Common WordPress Errors and How to Fix Them — https://www.wpbeginner.com/common-wordpress-errors-and-how-to-fix-them/
- WordPress常见错误12个及解决办法 — https://www.wbolt.com/common-wordpress-errors.html
官方文档: