如果您遇到 WordPress 错误消息或白屏,请不要惊慌。很可能有人之前遇到过相同的消息,并且可以轻易解决。

此页面列出了 WordPress 用户最常遇到的错误,并提供了解决它们的起点。在 WordPress 支持,您还会找到链接到更详细的页面或论坛,那里有志愿者提供帮助。

死亡白屏

PHP 错误和数据库错误都可能表现为白屏,即没有任何信息的空白屏幕,在 WordPress 社区中通常被称为 WordPress 死亡白屏 (WSOD)。

在采取绝望措施之前,WordPress 死亡白屏有多种原因:

  • 插件导致兼容性问题。如果您能访问 管理界面,请尝试停用所有插件,然后逐个重新激活它们。如果您无法访问您的界面,请通过 FTP 登录到您的网站。定位文件夹 wp-content/plugins 并将插件文件夹重命名为 plugins_old。这将停用您的所有插件。您可以在 故障排除常见问题解答 中阅读更多关于手动停用插件的信息。
  • 主题可能导致问题。如果您在刚激活新主题或在 WordPress 网络中创建新站点后遇到死亡白屏,这种情况尤其可能发生。登录 WordPress 管理界面并激活默认的 WordPress 主题(例如 Twenty Twenty-One)。如果您使用的是 WordPress 5.8 及更低版本,请切换到 Twenty Twenty-One 主题,因为 Twenty Twenty-Two 主题需要 5.9 及以上版本。如果您无法访问您的管理界面,请通过 FTP 访问您的网站并导航至 /wp-content/themes/ 文件夹。将当前活动主题的文件夹重命名。

WP_DEBUG 功能 通常会提供额外信息。

内部服务器错误

常见的 WordPress 错误
内部服务器错误消息

内部服务器错误可能有多种原因。这里有一些您可以尝试解决的步骤:

  • 最可能的原因是损坏的 .htaccess 文件。使用 FTP 登录到您的网站根目录,将您的 .htaccess 文件重命名为 .htaccess_old。尝试加载您的网站以查看是否解决了问题。如果有效,请确保访问 设置 > 固定链接 并重置您的 固定链接。这将为您生成一个新的 .htaccess 文件。
  • 尝试停用所有插件以查看是否是插件问题。如果您无法访问您的 WordPress 管理界面,请按照 这些说明 通过 FTP 停用您的插件。
  • 将主题切换为 WordPress 默认主题(例如 Twenty Twenty-One)以消除任何与主题相关的问题。如果您使用的是 WordPress 5.8 及更低版本,请切换到 Twenty Twenty-One 主题,因为 Twenty Twenty-Two 主题需要 5.9 及以上版本。
  • 增加 PHP 内存限制
  • 尝试从 WordPress 全新安装 重新上传 wp-admin 和 wp-includes 文件夹。

建立数据库连接错误

如果您看到显示“Error Establishing Database Connection"(建立数据库连接错误)的页面,这意味着您的数据库连接存在问题,可能有多种原因。以下是可能的原因和解决方案。

wp-config.php 信息不正确

"Error establishing a database connection"(建立数据库连接错误)通常是由您的 wp-config.php 文件中的错误引起的。在您的 FTP 客户端中访问您的网站。打开 wp-config.php 并确保以下内容正确:

  • 数据库名称
  • 数据库用户名
  • 数据库密码
  • 数据库主机

了解更多关于 编辑 wp-config.php 的信息。

如果您确定配置正确,可以尝试 手动重置您的 MySQL 密码。

您的网络主机问题

下一步是联系您的网络主机。以下托管问题可能导致该问题:

  • 您的数据库已达到配额并已关闭。
  • 服务器已宕机。

联系您的托管提供商,查看是否其中任何一个问题导致了您的问题。

网站被入侵

如果您已检查 wp-config.php 中的错误,并与您的主机确认了托管问题,那么您的网站可能已被黑客入侵。

使用 Sucuri SiteCheck 扫描您的网站以确保它未被入侵。如果已被入侵,请查看 我的网站被黑了。

自动升级失败

在某些情况下,WordPress 自动更新功能可能会失败。症状包括:

  • 空白白屏且无信息。
  • 警告提示更新失败。
  • PHP 错误消息。

WordPress 自动升级功能可能因与主要 WordPress 文件的连接出现故障、升级期间互联网连接问题或不正确的 文件权限 而失败。

要手动更新您的 WordPress 网站,请参阅 手动更新文章。

连接超时

当您的网站试图执行超过服务器处理能力的事情时,会出现连接超时错误。这在共享托管中尤为常见,因为您的内存限制受到限制。这里有一些您可以尝试的步骤:

  • 停用所有插件。如果停用您网站上所有 WordPress 插件解决了问题,请逐个重新激活它们以查看哪个插件导致了问题。如果您无法访问您的管理界面,阅读有关如何手动停用插件的内容。
  • 切换到默认 WordPress 主题。如果您使用的是 WordPress 5.8 及更低版本,请切换到 Twenty Twenty-One 主题,因为 Twenty Twenty-Two 主题需要 5.9 及以上版本。这应该可以排除任何与主题相关的问题。
  • 增加 wp-config.php 中的内存限制。如果您在共享托管上,您可能需要要求您的托管提供商为您增加内存限制。
  • 增加 php.ini 文件中的最大执行时间。这不是一个 WordPress 核心文件,所以如果您不确定如何编辑它,请联系您的托管提供商,要求他们增加您的最大执行时间。请参阅下面关于增加最大执行时间的说明。

升级后的维护模式

常见的 WordPress 错误

当 WordPress 更新时,它会自动安装一个 .maintenance 文件。升级后,您可能会收到一条消息说“Briefly unavailable for scheduled maintenance. Please check back in a minute."(暂时不可用,正在进行计划维护。请稍后再试。)维护文件可能没有被正确删除。

要消除此消息,请执行以下操作:

  1. 使用您的 FTP 程序登录到您的网站
  2. 删除 .maintenance 文件,它将位于您的网站根目录中。

阅读更多关于 维护模式问题 的信息。

您进行了更改但 nothing happens

如果您正在修改网站但在浏览器中看不到更改,可能需要清除浏览器缓存。您的浏览器会存储您访问过的网站信息。这使得当您再次访问这些网站时加载速度更快,因为浏览器只需重新加载已存储在计算机上的信息,而无需再次下载。

如果您对网站进行了更改但浏览器认为更改不显著,它只会从缓存中加载数据,您将看不到您的更改。要解决此问题,只需清空浏览器缓存或关闭标签页并重新打开链接即可。

漂亮的永久链接 404 错误和图像无法工作

如果您在使用漂亮的永久链接时遇到 404 错误,并且在上传图像时出现白屏,则 Apache 可能默认未启用mod_rewrite。mod_rewrite是Apache Web 服务器软件的一个扩展模块,允许即时“重写”URL。这是使漂亮的永久链接正常工作所需的功能。

WordPress Multisite网络通常会遇到此问题,但也可能发生在共享主机提供商处或在站点迁移或服务器移动后发生。

通过设置 > 永久链接重置您的永久链接。如果这不起作用,您可能需要手动编辑.htaccess文件。

# BEGIN WordPress  
<IfModule mod\_rewrite.c>  
RewriteEngine On  
RewriteBase /  
RewriteRule ^index\.php$ - [L]  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule . /index.php [L]  
</IfModule>  
# END WordPress

如果您不熟悉编辑.htaccess文件,请联系您的主机提供商,请他们开启 mod_rewrite 规则。有关WordPress Codex 中的漂亮永久链接的更多信息。

自定义文章类型 404 错误

您可能会遇到与自定义文章类型相关的 404 错误问题。请尝试以下步骤:

  1. 确保您的任何自定义文章类型和单页没有相同的名称。如果有,请重命名该单页,包括其slug。
  2. 登录到您的 WordPress 管理屏幕,导航到设置 > 永久链接。选择默认永久链接。保存。然后重新选择您喜欢的永久链接。这将刷新重写规则并应该解决您的问题。

关键错误消息

如果您看到消息“本网站上发生了严重错误。请检查您的网站管理员邮箱以获取说明”,这表明您的网站中的某些内容导致了严重错误,阻止 WordPress 按预期运行。

首先,检查您的电子邮件,查看 WordPress 是否向您发送了关于错误的详细信息。接下来,在您的wp-config.php文件中启用调试模式。

启用后,查看位于 wp-content/debug.log 的错误日志,以找出具体发生了什么错误。

您可能会发现的一些最常见原因包括插件之间的冲突、主题兼容性问题、运行不兼容的 PHP 版本、达到内存限制或拥有损坏的 WordPress 文件。

特定错误消息

错误日志中会出现许多不同的错误。要访问错误日志,您需要开启调试,然后通过 FTP 定位您的错误日志。以下信息将帮助您解读一些常见的错误消息。

PHP 错误

以下是一些常见的 PHP 错误消息。

致命错误和警告

无法修改头信息 – 头信息已发送

如果您收到警告说 WordPress 无法修改头信息且头信息已发送,通常意味着您在 opening tags 之前或 closing tags 之后有空格或字符。阅读如何修复头信息已发送错误。

如果您在安装 WordPress 后遇到此问题,可能是您在wp-config.php中引入了语法错误。这些说明将帮助您修复错误。

调用未定义的函数

读取调用未定义函数的错误可能意味着 WordPress 插件试图查找代码中不存在或不可访问的文件或数据。原因包括:

  • 尝试自动安装或自动升级插件时出错。尝试手动安装或升级插件。
  • 尝试自动安装或自动升级主题时出错。尝试手动安装或升级主题。
  • 您可能使用了不兼容的 WordPress 插件或不兼容的主题。这可能发生在旧版 WordPress 和新 WordPress 插件之间,或者如果您试图在单个站点安装中使用 WordPress Multisite 插件。升级 WordPress 以解决此问题。
  • 您可能试图调用一个不存在的函数。检查functions.php是否有拼写错误。

尝试停用导致错误的 WordPress 插件或更改 WordPress 主题。如果您无法在管理屏幕内执行此操作,则可能需要通过 FTP 手动执行。

允许的内存大小耗尽

允许的内存大小耗尽错误意味着您的 WordPress 安装没有足够的内存来实现您的需求。您可以尝试以下步骤:

  • 增加wp-config.php 中的内存限制
  • 通过编辑php.ini增加内存限制。这不是随 WordPress 提供的文件,所以如果您不熟悉它,应联系您的 Web 主机以增加内存限制。
超过最大执行时间

您可能会收到类似“超过 30 秒的最大执行时间”或“超过 60 秒的最大执行时间”的消息。这意味着某个过程完成所需的时间过长并且超时了。有多种方法可以修复此错误。

编辑 .htaccess

在编辑之前请务必备份 .htaccess。

将以下行添加到.htaccess:

php_value max_execution_time 60

编辑 php.ini

将以下内容添加到php.ini

max_execution_time = 60

如果您不确定如何进行这些更改,或者如果您在共享主机上无法自行进行更改,请联系您的主机提供商,请他们增加您的最大执行时间。

解析错误

语法错误

语法错误意味着您在创建 PHP 结构时犯了错误。例如,您可能是:

  • 在单独一行的末尾缺少;。
  • 使用了花引号。
  • 缺少花括号。

当此错误出现时,它会告诉您错误出现在哪个文件(例如functions.php)以及大约哪一行(可能不一定是确切的那一行,因此请务必检查前后)。在代码中。

意外

如果您收到的错误消息为“解析错误:意外”,通常意味着您忘记包含某个字符。最常见的是:

  • 意外的 '=':引用变量时忘记了包含 $
  • 意外的 ')':忘记了包含开括号 (
  • 意外的 '(':忘记了包含闭括号 )
  • 意外的 T_STRING:忘记了前一行末尾的引号或分号
  • 意外的 T_ELSE:有一个 else 语句但没有对应的 if 语句

使用未定义的常量

与解析错误一样,“使用未定义的常量”意味着您缺少某个字符。可能是以下之一:

  • 引用变量时缺少 $
  • 数组键周围缺少引号

数据库错误

以下错误可能与您的 WordPress 数据库相关。

错误 13 – 无法创建/写入文件

您遇到此错误的原因可能有很多。

MySQL 无法创建临时文件。

当使用 PHP 访问 MySQL 时,MySQL 变量 tmpdir 被设置为一个无法写入的目录。要验证这一点,请在命令行中输入 MySQL 并输入 show variables。您将看到一个很长的列表,其中一项将显示:tmpdir = /somedir/(根据您的设置而定)。

解决方法是将 tmpdir 变量修改为指向一个可写入的目录。

  1. 找到 my.cnf 文件。在 *nix 系统上,它通常位于 /etc/。在 Windows 系统上,请找到 my.ini。
  2. 找到后,用简单的文本编辑器打开它,并找到 [mysqld] 部分。
  3. 在该部分下,找到 tmpdir 行。如果该行被注释(以 # 开头),请删除 # 并编辑该行,使其显示为:tmpdir = /writable/dir,其中 /writable/dir 是您可以写入的目录。有些人使用 /tmp,您也可以尝试 /var/tmp 或 /usr/tmp。在 Windows 上,请使用 C:/Windows/tmp。
  4. 保存文件。
  5. 通过输入 mysqlshutdown -u -p shutdown 关闭 MySQL。
  6. 进入 MySQL 目录并输入 ./bin/safe_mysqld & 来启动 MySQL。通常 MySQL 目录位于 /usr/local,有时在 Linux 系统上也位于 /usr/。

文件权限 不正确

请更正 文件权限。

如果以上内容您无法理解,并且有人为您管理系统,请将上述内容展示给他们,他们应该能够解决。

CREATE 命令被拒绝给用户

当分配给数据库的用户没有足够的权限来执行在数据库中创建列和表的操作时,会出现此错误。您需要登录到 CPanel 或 Plesk 为您的数据库用户授予足够的权限。

或者,您可以 创建一个新用户并分配给您的数据库。如果您创建了新用户,则需要确保将其 更新到 [wp-config.php](https://wordpress.org/documentation/article/using-cpanel/#editing-the-wordpress-config-file) 中。

错误

这可能是由于:

  • 您在 /tmp(即 tmpdir 所在位置)上空间不足,或者,
  • 您在 /tmp 中的文件过多(即使有大量可用空间),或者,
  • 您服务器上的缓存已满

这是一个 MySQL 错误,与 WordPress 本身无关;您应该就此联系您的主机服务商。一些用户报告称,在 phpMyAdmin 中运行“repair table"命令解决了该问题。

错误 145

这表明您数据库中的一张表已损坏或损坏。如果您熟悉使用 phpMyAdmin,您可以使用 这些关于修复 MySQL 数据库表的说明。

在对数据库执行任何操作之前,请务必 备份您的数据库。

如果您以前未使用过 phpMyAdmin,或者对此感到不适,请联系您的网络主机并请求他们在您的数据库上运行 CHECK/REPAIR。

未知列

未知列错误可能是由数据库中缺少列引起的。如果您刚刚升级了 WordPress,请尝试手动再次升级。要手动更新您的 WordPress 站点,请参阅 更新文章。

如果您在执行数据库查询时遇到此错误,则可能是因为您使用了错误的引号作为标识符引号字符。此 Stack Overflow 上的问题提供了更多详细信息。另请参阅 MySQL 文档。

资源