Как автоматизировать удаление неактуальных значений опций в WordPress

Работа с опциями (options) в WordPress — это важная часть оптимизации и поддержки сайта. Со временем в базе данных накапливаются устаревшие, неиспользуемые или временные значения опций, которые могут замедлять работу сайта и занимать лишнее место. В этой статье вы узнаете, как автоматизировать удаление таких неактуальных значений опций с помощью кода и готовых плагинов, а также получите примеры функций для безопасной очистки.

Что такое опции WordPress и почему их нужно чистить

Опции — это ключ-значение пары, хранящиеся в таблице wp_options, которые используются для хранения настроек сайта, плагинов и тем. При удалении плагина или изменении настроек некоторые опции остаются в базе, даже если они уже не нужны.

Накопление таких данных может привести к:

  • Увеличению размера базы данных;
  • Замедлению выполнения запросов;
  • Потере актуальности настроек;
  • Проблемам с совместимостью при обновлениях.

Регулярная очистка помогает поддерживать базу данных в порядке и улучшает производительность сайта.

Как вручную найти и удалить неиспользуемые опции

Для начала полезно понять, какие опции устарели. Это можно сделать несколькими способами:

  • Через phpMyAdmin: выполните запрос, чтобы найти опции, которые не используются, например, по префиксу или дате создания.
  • С помощью плагинов: существуют инструменты для анализа и удаления опций (например, Clearfy Pro).

Пример SQL-запроса для поиска опций с префиксом плагина, который уже удалён:

SELECT option_name FROM wp_options WHERE option_name LIKE 'pluginprefix_%';

Удалять опции напрямую из базы нужно осторожно, чтобы не повредить сайт.

Автоматизация удаления опций с помощью WP-Cron

Чтобы не проводить очистку вручную, можно написать функцию, которая будет запускаться по расписанию и удалять устаревшие опции.

Пример функции для удаления опций по массиву имён:

function wpco_delete_unused_options() {
    $unused_options = [
        'pluginprefix_setting1',
        'pluginprefix_setting2',
        'old_custom_option'
    ];
    foreach ( $unused_options as $option ) {
        if ( get_option( $option ) !== false ) {
            delete_option( $option );
        }
    }
}

Далее нужно зарегистрировать событие WP-Cron, чтобы функция запускалась, например, раз в неделю:

if ( ! wp_next_scheduled( 'wpco_weekly_options_cleanup' ) ) {
    wp_schedule_event( time(), 'weekly', 'wpco_weekly_options_cleanup' );
}
add_action( 'wpco_weekly_options_cleanup', 'wpco_delete_unused_options' );

Таким образом, очистка будет происходить автоматически, без вашего участия.

Использование плагинов для очистки опций

Если вы не хотите писать код, можно использовать готовые решения. Вот несколько проверенных плагинов:

  • Clearfy Pro — многофункциональный плагин для оптимизации и очистки базы, включая удаление ненужных опций.
  • Optimize Database after Deleting Revisions — позволяет удалять неактуальные записи, включая опции.

При использовании плагинов важно создавать резервные копии базы данных перед очисткой.

Расширенная очистка: удаление временных и транзиентных опций

WordPress часто использует транзиенты — временные опции с ограниченным сроком жизни. Иногда они не удаляются автоматически. Для очистки транзиентов можно использовать такой код:

function wpco_delete_expired_transients() {
    global $wpdb;
    $time = time();
    $transients = $wpdb->get_col(
        "SELECT option_name FROM $wpdb->options WHERE option_name LIKE '_transient_%'"
    );
    foreach ( $transients as $transient ) {
        $transient_name = str_replace( '_transient_', '', $transient );
        if ( false === get_transient( $transient_name ) ) {
            delete_option( $transient );
            delete_option( '_transient_timeout_' . $transient_name );
        }
    }
}

Добавьте вызов этой функции в WP-Cron для регулярной очистки временных данных.

Почему важно удалять транзиенты

Накопление просроченных транзиентов может приводить к избыточным запросам к базе и увеличению её размера. Регулярная очистка улучшает общую производительность сайта.

Как обезопасить процесс удаления опций

При автоматизации очистки важно:

  • Всегда создавать резервные копии базы данных перед изменениями.
  • Тестировать функции на локальной копии сайта или staging-сервере.
  • Использовать префиксы в названиях функций, чтобы избежать конфликтов (например, wpco_delete_unused_options).
  • Удалять только те опции, в которых вы уверены, что они не нужны.

Также хорошо вести лог удаления, чтобы можно было отследить, какие опции были удалены.

Заключение

Автоматизация удаления неактуальных значений опций в WordPress — это простой и эффективный способ поддерживать базу данных в чистоте и улучшить производительность сайта. С помощью регулярных WP-Cron задач и проверенных плагинов можно минимизировать ручной труд и избежать накопления мусора в базе данных.

Если вы хотите более продвинутые возможности оптимизации, обратите внимание на плагин Clearfy Pro — он включает функции по удалению устаревших опций, транзиентов и других элементов, замедляющих сайт.

Как автоматизировать удаление старого контента в WordPress
08.02.2026
Как создать автоматический бэкап WordPress с помощью кода и плагинов
01.01.2026
Как добавить настройки в админ-панель WordPress
02.12.2025
Как правильно создать и использовать Metabox в WordPress
22.11.2025
Как создать автозагрузку изображений в WordPress
17.11.2025