Wordpress导入程序错误:最长执行时间60秒

mir*_*avl 2 php xml wordpress

我正在尝试使用默认的wordpress导入器插件导入Wordpress主题单元测试xml.我收到以下错误:

致命错误:E:\ XAMPP\htdocs\wp\wp-includes\wp-db.php超出最长执行时间60秒

这是一个基本的WordPress 4.5.1安装,没有额外的插件或主题,但WordPress的进口商v 0.6.1,我本地的XAMPP服务器上,执行期限设定为6000 php.ini中,我可以看到这个预设的XAMPP的php_info .我已经尝试在wp-config.php和wp-db.php中添加set_time_limit(6000),结果出现同样的丑陋错误.

任何想法为什么会发生这种情况以及它如何得到帮助?

mir*_*avl 19

我找到了这个错误发生的确切原因,所以我会尝试为自己的问题提供答案.

在wp-includes/deprecated.php中有一个名为wp_get_http的函数,它仍然被wordpress importer插件使用(在wordpress-importer.php源文件中).在此函数内部调用set_time_limit(60),它是在所有wordpress源代码中使用参数60对此函数进行的两次调用之一,因此这是将导入器执行时间限制为60秒的位置.

wp_get_http由导入器插件调用,而不是在执行流程中,因此它会覆盖wp-config.php中的任何其他可能的set_time_limit()调用,并且无法通过php.ini中的修改来纠正,这些修改本身可能不是托管服务提供商允许.

对我有用的快速解决方案是修改wp-includes/deprecated.php中wp_get_http()内的set_time_limit调用,如下所示:

set_time_limit(1200); // Limit to 20 minutes
Run Code Online (Sandbox Code Playgroud)

它为wordpress导入器提供20分钟的时间来获取导入期间可能需要的所有远程文件.可能这不是最安全的解决方案,但它对我有用.