Идея такая: на фронтенде у меня есть скрипт, которому передаю массив со ссылками на изображения и другие файлы (прямые ссылки для скачивания с домена№1 на котором и крутится фронтенд), дальше при нажатии на сабмит - мы шлём запрос на домен№2 на котором стоит вордпресс и есть файл с функцией media_handle_sideload для загрузки всех изображений в библиотеку файлов wordpress...
Всё отлично отрабатывает, если мы передаем массив из 4-5 файлов (1 файл от 1 до 5 мб), но когда общее число файлов превышает 7 единиц или вес превышает 30мб суммарный, то мы получаем или 504 ошибку или 500 ошибку... Как я понял ошибка max execution time (в php ini уже поставил 120 секунд), но если грузить из админки, то всё замечательно.... а через скрипт постоянно ошибки и грузится только первые три картинки...
Вот кусок кода обработчика (которому присылается массив):
$imgs_url = $_REQUEST['screens'];
foreach ($imgs_url as $i => $download_url) {
$url = $download_url;
// Загрузим файл
$tmp = download_url($url);
// Установим данные файла
$file_array = [
'name' => basename($url), // ex: wp-header-logo.png
'tmp_name' => $tmp,
'error' => 0,
'size' => filesize($tmp),
];
// загружаем файл
$id = media_handle_sideload($file_array, $post_id, $desc);
array_push($id_imgs, $id);
// если ошибка
if (is_wp_error($id)) {
@unlink($file_array['tmp_name']);
return $id->get_error_messages();
}
// удалим временный файл
@unlink($tmp);
}