Ошибка импортера WordPress: максимальное время выполнения 60 секунд

Я пытаюсь импортировать тестовый XML- объект WordPress test xml с плагином импортера wordpress по умолчанию. Я получаю следующую ошибку:

Неустранимая ошибка: максимальное время выполнения 60 секунд превышено в E: \ XAMPP \ htdocs \ wp \ wp-includes \ wp-db.php

Это базовая установка WordPress 4.5.1 без дополнительных плагинов или тем, кроме импортера WordPress v 0.6.1, на моем локальном сервере XAMPP, ограничение времени выполнения установлено в 6000 в php.ini, и я могу видеть этот пресет в php_info xampp , Я уже пытался добавить set_time_limit (6000) в wp-config.php и wp-db.php с той же уродливой ошибкой, что и результат.

Любые идеи, почему это происходит и как это можно помочь?

Я нашел точную причину возникновения этой ошибки, поэтому я постараюсь дать ответ на свой вопрос.

В wp-includes / deprecated.php есть функция wp_get_http, которая по-прежнему используется плагином импортера wordpress (внутри исходного файла wordpress-importer.php). Внутри этой функции вызывается set_time_limit (60), это один из двух вызовов этой функции с параметром 60 во всем исходном коде WordPress, поэтому это место ограничивает время выполнения импортера до 60 секунд.

wp_get_http вызывается плагином-импортером довольно поздно в потоке выполнения, поэтому он переопределяет любые другие возможные вызовы set_time_limit () в wp-config.php и не может быть исправлен с помощью модификаций в php.ini, которые сами по себе могут не быть разрешено хостинг-провайдером.

Быстрое решение этой проблемы, которая работала для меня, заключается в изменении вызова set_time_limit внутри wp_get_http () в wp-includes / deprecated.php, например:

set_time_limit(1200); // Limit to 20 minutes 

Он дает импортеру wordpress 20 минут для получения всех удаленных файлов, которые могут потребоваться во время импорта. Может быть, это не самое безопасное решение, но это сработало для меня.

Вы можете добавить его в свой php.ini

set_time_limit (0);

Это, безусловно, решит проблему.

Это связано с тем, что время загрузки файла в php.ini установлено на 60 seconds то время как WordPress требует больше времени для правильной загрузки этих данных. Как и конец времени в php.ini он вызывает эту ошибку. Решение состоит в том, что вам нужно увеличить время загрузки, которое вам подходит.

 set_time_limit(300); //it will update your time to 300 seconds or 5 minutes. max_execution_time(300); 

замените эту строку кода своей собственной строкой кода php.ini, и ваша проблема будет решена. Если проблемы не исчезнут, вы можете увеличить это число 300 до тех пор, пока ваши файлы не будут загружены должным образом. Для дальнейшего чтения посетите http://php.net/manual/en/function.set-time-limit.php

Добавьте это в свой .htaccess файл

 <IfModule mod_php5.c> php_value post_max_size 16M php_value upload_max_filesize 16M php_value memory_limit 128M php_value max_execution_time 300 php_value max_input_time 300 php_value session.gc_maxlifetime 900 </IfModule> 

Это для вашего wp-config.php

 define('WP_MEMORY_LIMIT', '128M'); 

просто зайдите в файл wp-config и вставьте этот set_time_limit (60); или просто измените фигуру в круглых скобках на нужный вам вариант.