WordPress плагин Bulk Move и ошибка Maximum execution time
Для того чтобы в WordPress переместить пакетно много постов из одной категории в другую есть плагин: Bulk Move. Однако с больши кол-вом постов, он отказался у меня работать и выпал с ошибкой: Fatal error: Maximum execution time of 30 seconds exceeded in www\wp-includes\class-http.php on line 1155
Справиться с ней довольно просто, нужно увеличить максимальное время работы скрипта. Для этого есть функция php, set_time_limit(x), где x=кол-во секунд разрешенных работать скрипту с момента вызова этой функции.
Её, я думаю можно прописать и в www/wp-config.php, но таким образом мы установим время работы всем скриптам. Поэтому я её установил прямо в вызове плагина. Для этого:
- Открываем в редакторе код плагина: www/wp-content/plugins/bulk-move/bulk-move.php
- Ищем там такой участок:
123456case "bulk-move-cats":...foreach ($posts as $post) {$current_cats = wp_get_post_categories($post->ID) - И после foreach добавляем set_time_limit(30), получится так:
1234567case "bulk-move-cats":...foreach ($posts as $post) {set_time_limit(30);$current_cats = wp_get_post_categories($post->ID) - Вот и всё, теперь плагин не будет выпадать с ошибкой
Если же вы используете nginx, то возможно вы получите ошибку 503, т.к. плагин может работать достаточно долго. В таком случае, легче всего, скопировать базу к себе на комп, в какой-нибудь "быстрый-пакет" типа Денвера, и уже в нем выполнить все нужные операции, а после перезалить базу на удаленный сервер.
И конечно, не забывайте делать бэкапы - это экономит много времени и нервов 🙂
Author: | Tags: /
| Rating:
Leave a Reply