Как автоматизировать удаление старого transient в WordPress

|

Transient API — это мощный инструмент в WordPress для кэширования временных данных с определённым сроком жизни. Однако при неправильном использовании или из-за ошибок в коде transientы могут оставаться в базе данных и накапливаться, что замедляет сайт и увеличивает нагрузку на базу данных. В этой статье разберём, как автоматизировать удаление старых transient, чтобы поддерживать чистоту базы и улучшать производительность WordPress.

Что такое transient и почему важно удалять устаревшие записи

Transient — это временный кэш, который хранится в базе данных WordPress или в объектном кэше. Они используются для сокращения времени выполнения тяжёлых запросов и операций, например, при работе с API, сложными вычислениями или генерацией больших данных.

Каждый transient имеет ключ, значение и время жизни (TTL). Когда TTL заканчивается, transient считается устаревшим и должен быть удалён, но иногда этого не происходит из-за ошибок в плагинах или темах. Со временем количество устаревших transient растёт, что приводит к:

Автоматизация удаления старых transient поможет избежать этих проблем без необходимости вручную чистить базу.

Автоматическое удаление устаревших transient с помощью WP-Cron

Для автоматизации можно использовать WP-Cron — встроенный планировщик задач WordPress. Создадим функцию, которая будет искать и удалять старые transient и запускать её по расписанию.

Создание функции удаления старых transient

function wpdetect_delete_expired_transients() {
    global $wpdb;
    $time = time();
    // Получаем все transient, у которых время истекло
    $expired = $wpdb->get_col(
        "SELECT option_name FROM $wpdb->options 
         WHERE option_name LIKE '_transient_timeout_%' AND option_value < $time"
    );
    if (empty($expired)) {
        return;
    }
    foreach ($expired as $timeout_option) {
        // Название transient без префикса _transient_timeout_
        $transient_name = str_replace('_transient_timeout_', '', $timeout_option);
        // Удаляем transient и его время жизни
        delete_transient($transient_name);
    }
}

Эта функция ищет в таблице опций все ключи с устаревшим временем жизни и удаляет соответствующие transientы.

Регистрация задачи WP-Cron

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

function wpdetect_schedule_transient_cleanup() {
    if (!wp_next_scheduled('wpdetect_cleanup_transients_hook')) {
        wp_schedule_event(time(), 'daily', 'wpdetect_cleanup_transients_hook');
    }
}
add_action('wp', 'wpdetect_schedule_transient_cleanup');

add_action('wpdetect_cleanup_transients_hook', 'wpdetect_delete_expired_transients');

Теперь WordPress будет запускать очистку устаревших transient каждый день.

Дополнительные советы и плагины для работы с transient

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

В любом случае, если у вас сложный сайт, стоит регулярно проверять базу данных на предмет множества старых transient и очищать их вручную или автоматизировать процесс. Для этого можно использовать запросы к базе напрямую или WP-CLI:

wp transient delete-expired

Эта команда удалит все устаревшие transient из базы и освободит место.

Как избежать накопления устаревших transient: лучшие практики

Чтобы transient не накапливались и не создавали проблем:

Если transientы используются для кэширования внешних API, убедитесь, что после обновления данных они своевременно удаляются.

Заключение по автоматизации удаления transient в WordPress

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

Если хотите более готовые решения, обратите внимание на плагины, например, Clearfy Pro, который дополнительно оптимизирует transient и многое другое.

Используйте правильные инструменты и подходы, чтобы WordPress работал быстро и стабильно!

Как отладить проблемы с обработкой форм в WordPress: практические советы и примеры
25.02.2026
Как автоматизировать управление перенаправлениями в WordPress: практическое руководство
14.04.2026
Как автоматизировать удаление старых комментариев в WordPress
08.04.2026
Как автоматизировать удаление старого медиафайла в WordPress
15.03.2026
Как создать автоматический снимок базы данных WordPress с помощью WPDetect
01.01.2026
×
Quizle
Привлекайте, конвертируйте, зарабатывайте!
-15%

на премиум плагин WordPress

Получить скидку ⋙