Как создать настройку очистки кеша в WordPress с примером кода

Введение в кеширование в WordPress и необходимость очистки кеша

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

В этой статье мы разберём, как создать собственную настройку очистки кеша в административной панели WordPress с примером кода. Это поможет контролировать процесс очистки и интегрировать её с другими задачами сайта.

Какие типы кешей бывают и как их очистить

В WordPress обычно используют несколько типов кеша:

  • Объектный кеш — кеширует результаты запросов к базе данных в памяти.
  • Кеш страниц — статичные HTML-страницы, которые отдаются без генерации.
  • Кеш браузера — хранится у посетителя, управляется HTTP заголовками.
  • Кеш CDN — внешние сети доставки контента.

Ручная очистка кеша может быть необходима при использовании плагинов кеширования (например, WP Super Cache, W3 Total Cache, LiteSpeed Cache) или при кастомных решениях.

Создание собственной настройки очистки кеша в админке WordPress

Для примера создадим страницу настроек в разделе «Инструменты», где можно будет очистить кеш одним кликом. Мы реализуем очистку объектного кеша и кеша, если установлен плагин LiteSpeed Cache.

Добавление страницы настроек

Сначала зарегистрируем страницу настроек:

add_action('admin_menu', 'wpstandart_add_cache_clear_menu');
function wpstandart_add_cache_clear_menu() {
    add_management_page(
        'Очистка кеша',
        'Очистка кеша',
        'manage_options',
        'wpstandart-clear-cache',
        'wpstandart_render_cache_clear_page'
    );
}

Функция add_management_page добавит пункт в меню «Инструменты».

Вывод страницы с кнопкой очистки кеша

Создаём форму для запуска очистки:

function wpstandart_render_cache_clear_page() {
    if (isset($_POST['wpstandart_clear_cache'])) {
        wpstandart_clear_cache_handler();
        echo '<div class="notice notice-success is-dismissible">Кеш успешно очищен.</div>';
    }
    ?>
    <h1>Очистка кеша</h1>
    <form method="post">
        <input type="hidden" name="wpstandart_clear_cache" value="1" />
        <input type="submit" class="button button-primary" value="Очистить кеш" />
    </form>
    <?php
}

Обработка очистки кеша

В этой функции реализуем очищение кеша:

function wpstandart_clear_cache_handler() {
    // Очистка объектного кеша
    if (function_exists('wp_cache_flush')) {
        wp_cache_flush();
    }

    // Очистка LiteSpeed Cache, если установлен плагин
    if (class_exists('LiteSpeed_Cache_API')) {
        LiteSpeed_Cache_API::purge_all();
    }

    // Можно добавить другие методы очистки кеша по необходимости
}

Функция wp_cache_flush() очистит объектный кеш, а вызов метода purge_all() очистит кеш LiteSpeed.

Подключение очистки кеша к хукам WordPress

Часто необходимо очищать кеш автоматически при публикации или обновлении записи. Добавим примеры таких хуков.

Очистка кеша при сохранении записи

add_action('save_post', 'wpstandart_clear_cache_handler');

Этот простой вызов обеспечит очистку кеша каждый раз при сохранении любой записи, что избавит от необходимости делать это вручную.

Очистка кеша при удалении записи

add_action('delete_post', 'wpstandart_clear_cache_handler');

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

Расширение функционала: очистка кеша по расписанию

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

Создание Cron-задачи для очистки кеша

Добавим в файл функций запуск задачи раз в 6 часов:

add_filter('cron_schedules', 'wpstandart_add_cron_schedule');
function wpstandart_add_cron_schedule($schedules) {
    $schedules['every_six_hours'] = [
        'interval' => 21600,
        'display' => 'Каждые 6 часов'
    ];
    return $schedules;
}

add_action('wpstandart_cron_clear_cache', 'wpstandart_clear_cache_handler');

if (!wp_next_scheduled('wpstandart_cron_clear_cache')) {
    wp_schedule_event(time(), 'every_six_hours', 'wpstandart_cron_clear_cache');
}

Теперь кеш будет автоматически очищаться каждые 6 часов.

Рекомендуемые плагины для кеширования и их интеграция

Рассмотрим несколько популярных плагинов кеширования и способы их очистки:

  • W3 Total Cache — имеет функцию w3tc_flush_all() для очистки всего кеша.
  • WP Super Cache — очистка через функцию wp_cache_clear_cache() и удаление файлов кеша.
  • LiteSpeed Cache — как показано выше, LiteSpeed_Cache_API::purge_all().

Подключить очистку этих плагинов можно расширив функцию wpstandart_clear_cache_handler() соответствующими вызовами.

Заключение по созданию настройки очистки кеша в WordPress

Создание собственной настройки очистки кеша в админке позволяет гибко управлять кешем на сайте, интегрироваться с разными плагинами и автоматизировать процессы обновления контента. Приведённый пример кода можно расширять под конкретные задачи и используемые решения кеширования.

Если хотите упростить себе работу, обратите внимание на плагин Clearfy Pro, который среди прочих функций предлагает удобное управление кешем и оптимизацией сайта. Подробнее на wpshop.ru.

Как добавить динамические метаданные в WordPress для лучшего SEO
01.04.2026
Как создать автоматический импорт данных из Google Sheets в WordPress
06.02.2026
Оптимизация базы данных WordPress: удаление связанных и устаревших данных
02.12.2025
Как создать настройку очистки кеша в WordPress с примером кода
22.02.2026
Как использовать WooCommerce order meta для дополнительных данных заказа
18.05.2026