各位开发人员和问题解决者大家好。我在更新wordpress网站的header.php文件时遇到了一个问题。
首先,我尝试通过c面板->文件管理器手动更新文件。代码似乎保留在文件中,但当您以匿名模式查看页面源代码和不同的web浏览器时,代码不会呈现。
这不是服务器问题,我已经联系了服务器支持团队,mysql没有报告任何错误日志。
从我在google上做的一些搜索结果来看,似乎没有太多的解决方案。
完全错误
无法与站点通信以检查致命错误,因此php更改被还原。您将需要通过其他方式上传php文件更改,例如使用sftp。
任何帮助都将不胜感激。
7条答案
按热度按时间sq1bmfud1#
从技术上讲,这并不能解决眼前的问题。但是我刚刚添加了一个名为insert headers and footers的wordpress插件,我添加了头脚本,它成功地工作了。
hjzp0vay2#
对我起作用的是禁用所有插件,然后重新启用它们。这是由wordpress更新引起的。现在一切都如期进行,但令人沮丧。。
ps:使用批量停用操作。
f5emj3cl3#
此错误来自WordPress4.9中包含的wordpress功能。在wp文件编辑器中上传文件时,它基本上检查php错误,以防止保存可能/将破坏站点的代码。
它主要是一个插件(或服务器配置),阻止wordpress环回检查,以正确地检查由更新引起的潜在错误。由于wordpress无法检查您的新代码是否会产生错误,它会阻止代码更新。
检查这些链接:
https://wpengine.com/support/php-editor-errors-wordpress-4-9-higher/
https://wordpress.org/support/topic/cant-edit-main-theme-php-files-after-upgrading-to-4-9/
你可以试着禁用你的插件,看看功能是否恢复,或者用ftp/sftp更新你的文件(没有wordpress文件编辑器)。
atmip9wb4#
我来晚了一点,mtxz的回答是对的。然而,他们的解决方案并不能“解决”这个问题。我发现这个论坛说你可以通过删除wp admin/includes/file.php文件中的第492-599行来解决这个问题。
第一行是
if ( $is_active && 'php' === $extension ) {
最后一行是return new WP_Error( 'php_error', $message, $result );
,后面是两行括号。这解决了我的几个服务器上的问题。
注意:这个解决方案还删除了php调试,所以如果你有语法错误,你这样做,你的网站可能崩溃,你不能编辑文件,除非你通过sftp/ftp。一如既往,最好在编辑文件之前进行备份。
roqulrg35#
我有一个类似的问题,我的wordpress版本是5.2.2。
“数据库浏览器”插件,这是未经测试的我的版本的wordpress创建的问题。它是通过停用插件修复的。
因此,检查那些“未经wordpress版本测试”的插件(这可以在从 Jmeter 板->插件->添加新插件安装插件时看到),停用它们(如果不必要),并尝试使用“主题编辑器”更新文件。
6psbrbz96#
在我的例子中,我在cloudflare后面安装了wordpress。当我使用cloudflare证书时,我的网站协议是https。但是,在服务器端,它是一个自签名证书。
我已经安装了一个let's encrypt证书来代替自签名证书,然后它就工作了。之后,我可以在wordpress文件编辑器中保存php文件。
在安装了一个名为healthcheck的wordpress插件之后,我看到错误是“curl self-signed certificate”。
pdtvr36n7#
cloudflare也是我的问题。我有一个防火墙规则限制访问wp管理员,这是阻止我保存文件编辑。我不得不添加一个防火墙规则来允许我的特定ip地址。