10к лишних записей в wp_options
-
Здравствуйте, уважаемые форумчане. открыл давеча таблицу БД wp_options и ужаснулся:
куча записей вида:
wp_image_processing_queue_batch_* со значениями вроде «a:1:{i:0;a:4:{s:7:»post_id»;s:4:»1196″;s:5:»width»;i:300;s:6:»height»;i:300;s:4:»crop»;b:1;}}»
и
_transient_timeout_tablepress_
и
_transient_doing_cronВсего записей: 21540 Причём за 30 минут добавилось 40 записей, т.е. их число продолжает расти. Что такое может делать и как это лечить?
-
https://ru.wordpress.org/plugins/delete-expired-transients/
можете почистить плагином, если транзиенты (временные объекты) сами не удаляются
радикальное решение — использовать кеширование на основе redis,memcached,apcu,xcache (что есть) с соответствующим плагином объектного кеширования
тогда транзиенты будут сохраняться туда, это и работать будет быстрее и удаление старых записей при большом их количестве будет происходить на уровне соответствующего сервера key-value кешарадикальное решение — использовать кеширование на основе redis,memcached,apcu,xcache (что есть) с соответствующим плагином объектного кеширования
тогда транзиенты будут сохраняться туда, это и работать будет быстрее и удаление старых записей при большом их количестве будет происходить на уровне соответствующего сервера key-value кешаПосоветуйте, пожалуйста, адекватные плагины. Использовал Autooptimize, но он несколько подтормаживал сайт.
https://ru.wordpress.org/plugins/delete-expired-transients/
можете почистить плагином, если транзиенты (временные объекты) сами не удаляются
Транзиты он удалил, а вот
wp_image_processing_queue_batch_57c806c3efb5764182e0c938b0e71fd0
всё продолжают появляться… постоянно…wp_image_processing_queue_batch_57c806c3efb5764182e0c938b0e71fd0
всё продолжают появляться… постоянно…это вам какой-то плагин обработки изображений или их оптимизации создает
возможно он работает неправильно, или слишком медленно, особенно если это онлайн оптимизация изображений на сторонних сервисахПосоветуйте, пожалуйста, адекватные плагины. Использовал Autooptimize, но он несколько подтормаживал сайт.
то, что я посоветовала — несколько из другой оперы.
https://wpmag.ru/2013/keshirovaniye-wordpress/
см Кэширование объектов в WordPress и ниже
по умолчанию транзиенты, т.е. обьекты должны где-то сохраняться,
если ничего нет — это таблица wp_options записи вида _transient_*
если на хостинге имеется key-value хранилище, например (мне нравится) Redis, то поставив соответствующий вспомогательный плагин для WP можно его использовать, тогда запись в БД mysql будет заменена быстрой записью и получением значений в соответствующем хранилище
Узнайте, что есть на вашем хостинге, я бы конечно посоветовала Redis как лучший вариант с плагином https://ru.wordpress.org/plugins/redis-cache/ , но для этого редиска должна быть установлена и работать на сервере хостинга, а если на сервере редиса нет, то и плагин будет бесполезен.это вам какой-то плагин обработки изображений или их оптимизации создает
возможно он работает неправильно, или слишком медленно, особенно если это онлайн оптимизация изображений на сторонних сервисахКроме Responsive Lightbox & Gallery ни одного плагина, связанного с изображениями нет.
Если его отключить, то проблему это не решит.- Ответ изменён 6 лет, 3 месяца назад пользователем Alexander Babaev.
Responsive Lightbox & Gallery
не он.
Но и в стандартном WordPress такого на 100% нет.
Возможно какой-то встроенный в тему функционал или что-то из плагинов-«комбайнов»Возможно какой-то встроенный в тему функционал
Тема является дочерней темой GeneratePress
что-то из плагинов-«комбайнов»
Вот все установленные плагины:
- All In One WP Security 4.3.6
- ANB Shortcodes 1.02
- Anti-spam 5.2
- Delete Expired Transients 2.0.6
- Google XML Sitemaps 4.0.9
- GP Premium 1.7.2
- Lightweight Grid Columns 1.0
- List category posts 0.78.1
- Really Simple SSL 3.0.5
- Simple CSS 1.1
- TablePress 1.9.1
- WP Extended Search 1.2
- WP Translitera p1.2.5
- WP YouTube Lyte 1.7.5
встроенный в тему функционал
Только одно в моей теме использует БД:
<?php /* * Страница настроек шорткода mcbsu_postlist * в. 0.5 (А. Бабаев) */ /** * Создаем страницу настроек плагина */ add_action('admin_menu', 'medcolthm_admin_postlistsettings_addpage'); function medcolthm_admin_postlistsettings_addpage() { add_options_page( 'Настройки списка постов шорткода [mcbsu_postlist]', 'Список постов', 'manage_options', 'shcdmcbsupostlist', 'medcolthm_admin_postlistsettings_page_output' ); } function medcolthm_admin_postlistsettings_page_output(){ ?> <div class="wrap"> <h2><?php echo get_admin_page_title() ?></h2> <form action="options.php" method="POST"> <?php settings_fields('option_group'); do_settings_sections('medcolthm_admin_postlistsettings_setsection'); submit_button(); ?> </form> </div> <?php } /** * Регистрируем настройки. * Настройки будут храниться в массиве, а не одна настройка = одна опция. */ add_action('admin_init', 'medcolthm_admin_postlistsettings_settings'); function medcolthm_admin_postlistsettings_settings(){ $regargs = array( 'type' => 'string', 'group' => $option_group, 'description' => 'Настройки связывания шорткода mcbsu_postlist с рубриками.', 'sanitize_callback' => 'medcolthm_admin_postlistsettings_sanitize', 'show_in_rest' => FALSE, ); register_setting('option_group', 'mcbsu_postlist_options', $regargs); add_settings_section('medcolthm_admin_postlistsettings_section_id', 'Настройки связывания с рубриками', '', 'medcolthm_admin_postlistsettings_setsection' ); add_settings_field('mcbsu_postlist_newsall_field', 'Все новости', 'medcolthm_admin_postlistsettings_postlist_newsall_fill', 'medcolthm_admin_postlistsettings_setsection', 'medcolthm_admin_postlistsettings_section_id'); add_settings_field('mcbsu_postlist_news_field', 'Новости текущего учебного года', 'medcolthm_admin_postlistsettings_postlist_news_fill', 'medcolthm_admin_postlistsettings_setsection', 'medcolthm_admin_postlistsettings_section_id'); add_settings_field('mcbsu_postlist_classifieds_field', 'Объявления', 'medcolthm_admin_postlistsettings_postlist_classifieds_fill', 'medcolthm_admin_postlistsettings_setsection', 'medcolthm_admin_postlistsettings_section_id'); add_settings_field('mcbsu_postlist_photogallery_field', 'Фотогаллерея', 'medcolthm_admin_postlistsettings_postlist_photogallery_fill', 'medcolthm_admin_postlistsettings_setsection', 'medcolthm_admin_postlistsettings_section_id'); } // Заполняем опцию "Новости (все)" function medcolthm_admin_postlistsettings_postlist_newsall_fill(){ $val = get_option('mcbsu_postlist_options'); $val = $val ? $val['newsall'] : null; ?> <input type="text" name="mcbsu_postlist_options[newsall]" value="<?php echo esc_attr($val) ?>" /> <?php } // Заполняем опцию "Новости текущего учебного года" function medcolthm_admin_postlistsettings_postlist_news_fill(){ $val = get_option('mcbsu_postlist_options'); $val = $val ? $val['news'] : null; ?> <input type="text" name="mcbsu_postlist_options[news]" value="<?php echo esc_attr($val) ?>" /> <?php } // Заполняем опцию "Последние объявления" function medcolthm_admin_postlistsettings_postlist_classifieds_fill(){ $val = get_option('mcbsu_postlist_options'); $val = $val ? $val['classifieds'] : null; ?> <input type="text" name="mcbsu_postlist_options[classifieds]" value="<?php echo esc_attr($val) ?>" /> <?php } // Заполняем опцию "Фотогаллерея" function medcolthm_admin_postlistsettings_postlist_photogallery_fill(){ $val = get_option('mcbsu_postlist_options'); $val = $val ? $val['photogallery'] : null; ?> <input type="text" name="mcbsu_postlist_options[photogallery]" value="<?php echo esc_attr($val) ?>" /> <?php } // Очистка данных function medcolthm_admin_postlistsettings_sanitize ($options) { foreach ($options as $name => & $val) { if ($name == 'news') $val = strip_tags($val); if ($name == 'classifieds') $val = strip_tags($val); if ($name == 'newsall') $val = strip_tags($val); if ($name == 'photogallery') $val = strip_tags($val); } return $options; }
если есть ssh доступ, то можно из каталога корня сайта поискать
grep -ri image_processing_queue
если нет — можете поискать image_processing_queue в файлах резервной копии сайта, у себя на компьютере
Проверил логи и вот она ошибка?
[03-Sep-2018 19:14:29 UTC] PHP Fatal error: Uncaught IPQ_Process_Exception: Unable to get WP_Image_Editor for file "/var/www/html/www/***/uploads/2018/08/5.jpg": Не удалось выбрать редактор. (is GD or ImageMagick installed?) in /var/www/html/www/***/plugins/gp-premium/library/image-processing-queue/includes/class-ipq-process.php:71 Stack trace: #0 /var/www/html/www/***/plugins/gp-premium/library/batch-processing/wp-background-process.php(303): IPQ_Process->task(Array) #1 /var/www/html/www/***/plugins/gp-premium/library/batch-processing/wp-background-process.php(449): WP_Background_Process->handle() #2 /var/www/html/www/***/wp-includes/class-wp-hook.php(286): WP_Background_Process->handle_cron_healthcheck() #3 /var/www/html/www/***/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array) #4 /var/www/html/www/***/wp-includes/plugin.php(515): WP_Hook->do_action(Array) #5 /var/www/html/www/***/wp-cron.php(126): do_action_ref_array('wp_image_proces...', Array) #6 {main} in /var/www/html/www/***/plugins/gp-premium/library/image-processing-queue/includes/class-ipq-process.php on line 71
Оно?
gp-premium
поскольку данная сущность платная, вопросы относительно неуемного создания записей в базу лучше задать в техподдержку gp-premium
касательно ошибки, проверьте загружены ли у вас расширения PHP GD и (желательно) Imagick
можете<?php phpinfo(); ?>
файл info.php например создать на сайте и зайти на него из браузера
возможно фатальная ошибка и приводит к тому, что записи просто копятся, а не удаляются после успешного завершения задачи по обработке
- Ответ изменён 6 лет, 3 месяца назад пользователем Yui.
gd GD Support enabled GD Version bundled (2.1.0 compatible) GIF Read Support enabled GIF Create Support enabled PNG Support enabled libPNG Version 1.2.50 WBMP Support enabled XBM Support enabled
Imagick не установлен.
Unable to get WP_Image_Editor Не удалось выбрать редактор. (is GD or ImageMagick installed?)
тогда ошибка достаточно странная, возможно баг в плагине, лучше обратиться в его техподдержку, либо включить расширение PHP ImageMagick на хостинге, если есть возможность.
Вот ответ из ТП GeneratePress, который решил мою проблему:
On this server, you can turn it off by adding this to wp-config.php: define( 'GP_IMAGE_RESIZER', false );
Спасибо, Yui, за помощь и подсказки!
- Тема «10к лишних записей в wp_options» закрыта для новых ответов.