Кэширование — это одна из ключевых технологий для ускорения работы сайта на WordPress. Однако иногда возникает необходимость полностью отключить или удалить кэш, чтобы избежать проблем с обновлением контента, отладкой или при разработке новых функций. В этой статье рассмотрим, как вручную отключить или удалить различные типы кэша в WordPress без использования плагинов.
Почему важно знать, как отключать кэширование вручную
Некоторые разработчики и администраторы сталкиваются с проблемами, когда изменения на сайте не отображаются сразу. Это часто связано с кэшированием на уровне сервера, PHP, браузера или самого WordPress. Плагинов для кэширования много, но не всегда можно или хочется их использовать. В таких случаях умение отключить кэширование программно и вручную становится критичным.
Отключение кэша помогает:
- Обеспечить актуальность отображаемого контента;
- Избежать конфликтов при разработке и тестировании;
- Упростить диагностику проблем;
- Контролировать поведение сайта на низком уровне.
Основные типы кеширования в WordPress и как их отключить
Кэширование на уровне PHP (объектный кэш)
WordPress использует объектный кэш, который по умолчанию работает временно в рамках одного запроса, но может быть расширен плагинами для персистентного кэширования. Чтобы отключить объектный кэш, если он подключен, можно добавить в wp-config.php следующую строку:
define('WP_REDIS_DISABLED', true); // если используется Redis Object Cache
define('WP_CACHE', false);Кроме того, можно отключить плагин объектного кэширования или удалить файл object-cache.php из папки wp-content.
Отключение кэширования браузера и серверных заголовков
Иногда кэширование происходит на уровне HTTP-заголовков. Для контроля можно добавить или изменить заголовки в файле .htaccess или в теме через PHP.
Пример добавления заголовков для отключения кэша на уровне браузера:
add_action('send_headers', 'wp24_disable_browser_cache');
function wp24_disable_browser_cache() {
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Expires: Wed, 11 Jan 1984 05:00:00 GMT');
}Этот код нужно добавить в файл functions.php вашей активной темы или в собственный плагин.
Отключение встроенного кэширования WordPress (WP_CACHE)
Если в wp-config.php установлено define('WP_CACHE', true);, WordPress включает базовое кэширование страниц. Чтобы отключить, замените эту строку на:
define('WP_CACHE', false);После этого нужно очистить все кэшированные файлы и перезагрузить сайт.
Удаление кэша файлов и кэшированных данных вручную
Если на сервере используются механизмы кэширования, например, кеширование страниц через Varnish, Nginx FastCGI Cache или Memcached, то отключение только на уровне WordPress не поможет. Для полного удаления кэша необходимо:
- Удалить кэшированные файлы из папок кэша, например,
wp-content/cache/; - Перезапустить сервисы кэширования или очистить их кэш с помощью консольных команд;
- При использовании OPCache — сбросить кэш PHP с помощью функции
opcache_reset()в отдельном скрипте.
Пример простого скрипта для сброса OPCache:
<?php
if(function_exists('opcache_reset')) {
opcache_reset();
echo 'OPCache сброшен';
} else {
echo 'OPCache не активен';
}
?>Примеры полезных функций для контроля кэширования в WordPress
Для того, чтобы иметь продвинутый контроль, можно использовать собственные функции с префиксом wp24_. Например, функция для отключения кэширования REST API:
add_filter('rest_cache_enabled', 'wp24_disable_rest_cache', 10, 2);
function wp24_disable_rest_cache($enabled, $request) {
return false; // отключаем кэширование REST API
}Также можно отключить кэширование запросов WP_Query:
add_filter('posts_use_cache', 'wp24_disable_query_cache', 10, 2);
function wp24_disable_query_cache($use_cache, $query) {
return false; // отключаем кэш для всех запросов
}Полезные плагины для диагностики и контроля кэширования
Хотя мы не используем плагины для отключения кэша, для диагностики полезны:
- Query Monitor — показывает, какие запросы кешируются и сколько времени занимает генерация страниц;
- Debug Bar — расширяет панель отладки, можно увидеть кэширование;
- Clearfy Pro — содержит опции для тонкой настройки кэширования и удаления лишних кэшированных данных. Подробнее: https://wpshop.ru/plugins/clearfy-pro/
Рекомендации по работе с кэшированием при разработке
При разработке сайтов на WordPress рекомендуется:
- Всегда отключать кэширование на локальной машине или в средах разработки;
- Использовать кодовые сниппеты для отключения кэша REST API и WP_Query;
- Регулярно очищать все виды кэша при тестах;
- Понимать, на каком уровне происходит кэширование — браузер, сервер, WordPress;
- При необходимости применять специальные инструменты, например,
WP_DEBUGи плагины для отладки.
Итог
Отключение и удаление кэширования в WordPress без плагинов — задача вполне выполнимая, если знать, какие типы кэша используются и как ими управлять. В статье рассмотрены основные подходы и приведены примеры кода, которые помогут избежать типичных проблем с устаревшим контентом и ускорить процесс разработки. Используйте данные методы аккуратно, так как отключение кэша может негативно повлиять на производительность сайта при нагрузке.