以管理员身份登录时无法升级 WordPress 或添加新插件(使用 Sage 主题)

Can't upgrade WordPress or add new plugin while logged in as admin (using Sage theme)

我以管理员身份登录到 WordPress 网站后端。该主题是使用 Sage Starter Theme 构建的。

在开发期间,添加插件或升级核心没有问题,但自从转向生产后,插件没有 "Add New" 按钮,升级消息显示为 "WordPress 4.3 is available! Please notify the site administrator."

我尝试手动更改 wp_options table 的 db_version 字段以强制升级数据库。这没有用。

我尝试禁用所有插件并更改为 twentyten 主题 - 这没有用。

检查了服务器上的所有权限 - 不开心。

我该如何解决这个问题?

最新的 Sage Starter 主题使用 .env 文件通过 phpdotenv 库设置环境。它位于 WordPress 安装的 public HTML 网络根目录之上。

如果您在网站上线时将 .env 文件中的行 WP_ENV=development 更改为 WP_ENV=production,那么这很可能就是问题的根源。

如果您查看 /config/environments/production.php 中生产环境的实际配置,您会看到以下内容:

define('DISALLOW_FILE_MODS', true); // this disables all file modifications including updates and update notifications

这告诉 WordPress 不允许手动添加插件或允许核心更新。您可以简单地将其编辑为:

define('DISALLOW_FILE_MODS', false); // allow file modifications including updates and update notifications

修改核心或添加插件后,如果您不想让管理员拥有此权限,只需将其改回即可,但更好的解决方案是安装功能管理器插件并定义管理员权限稍低的角色。

我在 wp-config.php 文件中找不到行 define('DISALLOW_FILE_MODS', true);define('DISALLOW_FILE_MODS', false);

我的解决方案:我只是在 wp-config.php 文件中的 define('DB_HOST', 'localhost'); /* or anywhere */

之后添加了行 define('DISALLOW_FILE_MODS', false);

这解决了我的问题,我能够再次更新核心、主题和插件。

对于遇到此问题的其他任何人,您可能需要在 wp-config 或函数文件中找到另一行并将其更改为 false:

define('DISALLOW_FILE_EDIT', true);