Кеширование — ключевой инструмент для ускорения работы сайта на WordPress. Однако, накопление устаревших кеш-файлов может привести к проблемам с отображением актуального контента и увеличению занимаемого места на сервере. В этой статье разберём, как настроить автоматическое удаление старого кеша в WordPress, используя как кодовые решения, так и популярные плагины.
Почему важно удалять старый кеш в WordPress
При работе с кешем страницы и объекты сохраняются для быстрого доступа. Без регулярной очистки устаревших кеш-файлов сайт может показывать неактуальный контент, а также страдать из-за переполнения дискового пространства. Это особенно актуально для сайтов с частыми обновлениями, новостных порталов и магазинов на WooCommerce.
Автоматизация очистки кеша помогает:
- Поддерживать актуальность отображаемого контента;
- Избежать проблем с производительностью из-за большого объёма кеша;
- Снизить нагрузку на сервер, управляя размером кеша.
Рассмотрим способы реализации автоматической очистки кеша.
Удаление кеша через WP-Cron: пример функции для wp-box.ru
WordPress обладает встроенной системой планировщика задач — WP-Cron. С её помощью можно запускать очистку кеша по расписанию.
Ниже пример функции, которая удаляет файлы из папки кеша старше 7 дней. В примере предполагается, что кеш хранится в директории wp-content/cache/wp-box-cache/.
function wpbox_clear_old_cache() {
$cache_dir = WP_CONTENT_DIR . '/cache/wp-box-cache/';
$files = glob($cache_dir . '*');
$now = time();
$days_to_keep = 7; // удалять файлы старше 7 дней
foreach ($files as $file) {
if (is_file($file)) {
$file_mtime = filemtime($file);
if ($now - $file_mtime > $days_to_keep * 86400) {
unlink($file);
}
}
}
}
// Запускаем функцию по расписанию
if (! wp_next_scheduled('wpbox_daily_cache_clear')) {
wp_schedule_event(time(), 'daily', 'wpbox_daily_cache_clear');
}
add_action('wpbox_daily_cache_clear', 'wpbox_clear_old_cache');Этот код создаёт ежедневное событие, которое проверяет и удаляет файлы кеша старше 7 дней. Для корректной работы проверьте путь к кешу и права доступа к папке.
Настройка интервала и директории кеша
Вы можете изменить период хранения кеша, изменив переменную $days_to_keep. Если используете другой плагин кеширования, уточните, где хранится кеш, и замените путь в $cache_dir.
Для надёжности стоит добавить логирование удаления, чтобы видеть, когда и какие файлы были удалены:
function wpbox_clear_old_cache() {
$cache_dir = WP_CONTENT_DIR . '/cache/wp-box-cache/';
$files = glob($cache_dir . '*');
$now = time();
$days_to_keep = 7;
$deleted_files = [];
foreach ($files as $file) {
if (is_file($file)) {
$file_mtime = filemtime($file);
if ($now - $file_mtime > $days_to_keep * 86400) {
if (unlink($file)) {
$deleted_files[] = $file;
}
}
}
}
if (!empty($deleted_files)) {
error_log('wp-box.ru: deleted cache files: ' . implode(', ', $deleted_files));
}
}Использование плагинов для автоматической очистки кеша
Если вы предпочитаете не писать код, существуют плагины, которые помогут управлять кешем и его очисткой.
WP-Optimize
Плагин, который объединяет очистку кеша, оптимизацию базы данных и сжатие изображений. В настройках можно задать автоматическую очистку кеша по расписанию.
Преимущества:
- Простая настройка расписания;
- Оптимизация базы и кеша в одном инструменте;
- Поддержка WooCommerce и других популярных плагинов.
Подробнее: WP-Optimize на WPSHOP
Clearfy Pro
Этот плагин помогает оптимизировать работу сайта, в том числе управляет кешем. В Clearfy Pro есть возможность настроить автоматическую очистку кеша, что удобно для сайтов на wp-box.ru, где важна производительность.
Подробности и покупка: Clearfy Pro на WPSHOP
Особенности очистки кеша для популярных плагинов кеширования
WP Super Cache
Для WP Super Cache можно использовать функцию wp_cache_clear_cache() для удаления кеша программно. Ниже пример очистки кеша из cron-задачи:
function wpbox_clear_wp_super_cache() {
if (function_exists('wp_cache_clear_cache')) {
wp_cache_clear_cache();
}
}
add_action('wpbox_daily_cache_clear', 'wpbox_clear_wp_super_cache');Этот код можно добавить вместе с кодом из предыдущего примера для комплексной очистки.
W3 Total Cache
Для W3 Total Cache есть метод w3tc_pgcache_flush() для очистки кеша страниц. Пример использования:
function wpbox_clear_w3_total_cache() {
if (function_exists('w3tc_pgcache_flush')) {
w3tc_pgcache_flush();
}
}
add_action('wpbox_daily_cache_clear', 'wpbox_clear_w3_total_cache');Практические рекомендации по безопасности и производительности
При реализации автоматического удаления кеша важно:
- Убедиться, что скрипты имеют права на удаление файлов;
- Не удалять кеш слишком часто, чтобы не перегружать сервер;
- Проверять, что удаляются именно старые файлы, чтобы не потерять актуальный кеш;
- Использовать логирование для контроля работы автоматизации;
- Тестировать на тестовом сайте перед внедрением на рабочем.
Если используете сторонние плагины кеширования, изучите их API и возможности очистки кеша — это поможет избежать конфликтов и ошибок.