WordPress 编辑器未更新文件:无法与站点通信以检查致命错误

WordPress Editor not updating files: Unable to communicate back with site to check for fatal errors

我 运行 遇到了更新 WordPress 网站中 header.php 文件的问题。

首先,我尝试通过 C 面板 -> 文件管理器手动更新文件。代码似乎保留在文件中,但当您以隐身模式和不同的网络浏览器查看页面源代码时,代码不会呈现。

这不是服务器问题,我已经联系了服务器支持团队,MySQL 没有报告任何错误日志。

我在 Google.

上进行一些搜索后发现似乎没有很多解决方案

完全错误

Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.

此错误来自 Wordpress 4.9 中包含的 Wordpress 功能。它基本上会在 WP 文件编辑器中上传文件时检查 PHP 错误,以防止保存 could/will 破坏您的网站的代码。

它主要是一个插件(或服务器配置),阻止 Wordpress 环回检查以正确检查由您的更新引起的潜在错误。由于 Wordpress 无法检查您的新代码是否会产生错误,因此它会阻止代码更新。

检查这些链接:

您可以尝试禁用您的插件以查看该功能是否恢复正常,或者使用 FTP/SFTP(没有 Wordpress 文件编辑器)更新您的文件。

现在,这在技术上并没有解决手头的问题。但我刚刚添加了一个名为 Insert Headers and Footers 的 WordPress 插件,并添加了 header 脚本并且它成功运行。

对我有用的是禁用所有插件,然后 re-enable 它们。这是由 wordpress 更新引起的。现在一切都按预期工作,但是非常令人沮丧..

PS: 使用批量停用操作。

我遇到了类似的问题,我的wordpress版本是5.2.2。

"Database Browser" 插件,未经我的 WordPress 版本测试,造成了这个问题。它是通过停用该插件修复的。

因此请检查“未经您的 WordPress 版本测试”的插件(这可以在从仪表板安装插件时看到-> 插件-> 添加新的),停用他们(如果不需要)并尝试使用 "theme editor" 更新文件。

我来晚了一点,Mtxz 的回答是正确的。但是,他们的解决方案没有 "fix" 问题。我发现 this forum 说你可以通过删除 wp-admin/includes/file.php 文件中的第 492 - 599 行来解决它。

第一行是if ( $is_active && 'php' === $extension ) {第三行最后一行是return new WP_Error( 'php_error', $message, $result );,后面是两行括号。

这解决了我的几个服务器上的问题。

注意:此解决方案还删除了 PHP 调试,因此如果您遇到语法错误并执行此操作,您的站点可能会崩溃并且您无法编辑文件,除非你通过 SFTP/FTP。与往常一样,最好在编辑文件之前进行备份。

就我而言,我在 cloudflare 后面安装了 wordpress。我的网站协议是 HTTPS,因为我使用的是 cloudflare 证书。但是,在服务器端,它是一个自签名证书。

我安装了一个 let's encrypt 证书来代替自签名证书,然后就可以使用了。之后,我可以在 wordpress 文件编辑器中保存 PHP 个文件。

安装一个名为health check的wordpress插件后,我看到错误是“curl self signed certficate”。

Cloudflare 也是我的问题。我有一个防火墙规则限制对 wp-admin 的访问,这阻止了我保存文件编辑。我必须添加防火墙规则以允许我的特定 IP 地址。

我同意@nickdevyyc 的观点,对此没有技术解决方案。但最好我们可以使用一些提供文件管理器的外部插件,我们可以在其中编辑每个文件。这是我找到的

https://wordpress.org/plugins/theme-editor/

这对我很有帮助,拯救了我!

如果您使用的是 Cloudflare,请尝试 Cloudflare 的“开发模式”按钮。 (这就是治愈它的方法)。其他答案提到了 Cloudflare 的问题,但开发模式很容易检查它是否解决了问题,只要你想编辑就很容易实施,而且很安全,因为如果你忘记关闭它,它会自行禁用。