WordPress更新失败:Warning: 发生了预料之外的错误
WordPress更新插件或者主题或者升级程序,报以下错误:
Warning: 发生了预料之外的错误。 WordPress.org 或是此服务器的配置可能出了一些问题。如果您持续遇到困难,请试试支持论坛。 (WordPress 无法建立到 WordPress.org 的安全连接,请联系您的服务器管理员。) in C:\dev\project\wordpress\wordpress_obscure\wp-admin\includes\update.php on line 154
正在从 https://downloads.wordpress.org/release/zh_CN/wordpress-6.6.1.zip 下载更新…
Fatal error: Maximum execution time of 300 seconds exceeded in C:\dev\project\wordpress\wordpress_obscure\wp-includes\Requests\src\Transport\Curl.php on line 534
此站点遇到了致命错误,请查看您站点管理员电子邮箱中收到的邮件来获得指引。
出现这种情况,绝大部分是因为网络原因,无法在短时间内获取到WordPress接口返回的数据。
解决办法如下:
修改php执行超时时间:
max_execution_time = 3000
修改WordPress请求链接超时时间,通过过滤器修改,可以把代码放在主题主文件里或者其它插件代码里:
add_filter('http_request_args',function ($parsed_args, $url){
$parsed_args['timeout'] = 3000;
return $parsed_args;
},10,2);
修改了php超时时间,为啥要修改WordPress请求链接超时时间?
这是因为WordPress代码里,部分地方设置了超时时间为3秒,如果3秒获取不到返回数据,程序不就无法运行了?
参考文件:wp-admin/includes/translation-install.php
代码: