Иногда так бывает что сервер, где установлен ваш сайт имеет плохой канал до сервера, с которого обновляется, либо каналы просто сильно загружены. Сегодня в рассылке wp-testers увидел что такое бывает не только «у нас» и там же приведено такое решение — создать плагин, который увеличивает таймайт, либо можно эту функцию вставить куда нибудь в движок или другой активный плагин.
Выглядела ошибка примерно так:
Загрузка не удалась.: Operation timed out after 30000 milliseconds with 15483145 out of 2077956 bytes received
Вот собственно говоря пример такой функции, где 300 — это то количество секунд, которое мы хотим установить вместо дефолтных 30-ти.
function filter_update_timeout($r)
{
if (30 == $r['timeout'])
$r['timeout'] = 300;
return ($r);
}
add_filter('http_request_args','filter_update_timeout');
Автор решения: Peter Westwood http://westi.wordpress.com
Я уже видел что у кого то не хотел обновляться автоматически движок, такое было «когда все разом ломанулись» автообновляться с версии 2.7 до 2.7.1, чем вызвали глобальную просадку моего канала связи. После этого я сделал эксперимент и поставил редирект на уровне вебсервера на другое зеркало на одном хостинге. Проблема с таймаутом сразу пропала, но так не работает автообновление у тех, у кого при обновлении запрашивается ввод адреса сервера, логина и пароля фтп. Там просто писалось «Found» и ничего не качалось (хотя у кого то я видел и работало). Сейчас я снова вернул ссылку на «первое зеркало» и просто увеличил таймаут до 3-х минут. Этого более чем достаточно. В дистрибутиве я уже добавил эту функцию как в ru_RU.php, так и в плагин включения автообновлений, новую версию которого (а также обновленный файл ru_RU.php) можно скачать здесь. Файл ru_RU.php нужно поместить в wp-content/languages, а плагин lecactus_edition_update_url.php в wp-content/plugins. А можно сделать проще — выбрать автоматическую переустановку движка и все файлы у вас обновятся сами. Там же я вложил в архив (ссылка выше) еще и файл big_timeout.php, который вы можете просто установить на любую(не только мою сборку) версию WP2.7 и новее, чтобы увеличить таймаут (грубо говоря функция приведенная выше просто оформлена как плагин готовый). Возможно поможет вам при обновлении плагинов объемных.