白屏、404、数据库连接错误、内存耗尽:WordPress 最常见的 12 个错误及一步步排查方法
不管你是刚接触 WordPress 的新手,还是有多年经验的开发者,总会遇到各种莫名其妙的错误。大多数错误并不可怕,只是缺少一套系统的排查思路。下面列出 12 个最常见的问题及其解决方法。
1. 白屏(空白页面)。 这是最常见的 PHP 致命错误的表现形式。首先找到 wp-config.php,将 WP_DEBUG 设为 true,WP_DEBUG_DISPLAY 设为 true,然后重新加载页面,这时会显示具体的 PHP 错误信息。最常见的白屏原因包括:functions.php 末尾多了一个空格或 ?> 换行、调用了不存在的函数、内存耗尽、语法错误(比如漏掉分号)。线上网站排查后记得把调试模式关掉。
2. 数据库连接错误。 错误提示“Error establishing a database connection”。检查以下几个地方:数据库服务是否在运行、wp-config.php 中的数据库名称、用户名、密码、主机名是否正确、数据库用户是否有访问权限、数据库是否已满(尤其是一些廉价主机有大小限制)。如果最近迁移了网站,别忘了更新 siteurl 和 home 选项。
3. 404 错误(帖子或页面打不开)。 如果新发布的文章返回 404,先去后台设置 → 固定链接中点击“保存更改”按钮,这会刷新重写规则。如果问题依然存在,检查 .htaccess 文件是否存在(Apache)或 Nginx 配置是否正确。启用自定义文章类型后,也需要点击保存固定链接。
4. 内存耗尽错误。 错误信息类似“Allowed memory size of XXXXX bytes exhausted”。在 wp-config.php 中添加 define('WP_MEMORY_LIMIT', '256M') 可以增加内存限制。但如果经常出现内存耗尽,问题根源往往是一个低质量插件或主题中的内存泄漏,你需要排查最近添加了什么代码。
5. 内部服务器错误(500 错误)。 这是一个通用错误,通常需要查看服务器的错误日志才能知道具体原因。常见原因包括 .htaccess 语法错误、PHP 超时、PHP 内存不足、文件权限错误(文件夹 755,文件 644)、插件或主题冲突。先尝试重命名 .htaccess,如果问题解决,重新生成固定链接。如果不行,通过 FTP 重命名 /plugins 文件夹来禁用所有插件,然后再一个个启用排查。
6. 无法上传图片或文件。 检查文件夹权限(/wp-content/uploads/ 应该为 755 或 775)。检查服务器是否超过了最大上传文件限制(需要修改 php.ini 中的 upload_max_filesize 和 post_max_size)。另外,某些安全插件或主机防火墙可能会拦截文件上传。
7. 管理后台无法登录(登录后跳回登录页)。 清理浏览器 Cookies,或者尝试用隐私模式登录。最常见的原因是 WordPress 地址和站点地址不一致(在 wp-config.php 中强制定义)。也有可能是某个插件在登录钩子中出了问题,重命名插件文件夹临时解决。
8. 主题自定义修改消失。 99% 的情况是因为直接在父主题中修改了代码,然后父主题更新了。正确做法是使用子主题。如果已经是子主题但修改丢失,检查缓存插件是否没有清除缓存。
9. 在执行 add_action 或 add_filter 时函数未定义。 错误提示“Call to undefined function”。原因是你挂载钩子的时机早于函数定义的时间。解决方案是把函数定义放在 add_action 之前,或者将 add_action 的优先级参数调低(数字越大执行越晚),或者把函数定义包裹在 function_exists 判断中。
10. AJAX 请求返回 0 或 -1。 这通常是 AJAX 安全验证失败或 PHP 代码产生致命错误但被静默捕获了。检查 nonce 是否匹配,确认 AJAX 请求的 action 参数与 wp_ajax_xxx 钩子名称一致,并且在 functions.php 中确保函数确实被定义了。
11. 安装插件或主题时提示需要 FTP 信息。 这是文件权限导致的。在 wp-config.php 中添加 define('FS_METHOD', 'direct') 可以强制直接写入。但更好的方案是修改服务器的文件所有权,让 Web 用户拥有文件写入权限。
12. 邮件发送失败。 WordPress 默认使用 PHP mail() 函数,但很多服务器禁用了它或配置不正确。使用 SMTP 插件(比如 WP Mail SMTP)配置一个真实的邮件发送服务(Gmail、SendGrid、阿里云邮件推送等),既提高送达率,也避免被标记为垃圾邮件。
调试的核心思路是:先复现问题,然后缩小范围(禁用所有插件、切换到默认主题),开启调试模式看具体报错,逐步定位到具体函数或代码行。掌握了这套方法,99% 的错误都可以自己解决。

