Функция wp_cache_add_non_persistent_groups()
позволяет указать группы кэша как «непостоянные». Это значит, что данные, сохраненные в таких группах, будут доступны только в течение текущей сессии и не сохранятся между перезагрузками страниц. Этот тип кэша полезен для данных, которые актуальны только для одной генерации страницы или выполнения скрипта.
wp_cache_add_non_persistent_groups( string|string[] $groups )
Параметры функции
$groups
(string|string[]) — обязательный параметр. Имя группы или массив названий групп, которые нужно сделать непостоянными, чтобы они не сохранялись в долгосрочный кэш.
Применение и особенности
По умолчанию в WordPress кэш является временным и создается заново при каждой генерации страницы. Однако некоторые плагины могут сохранять кэш между сессиями, записывая его на диск или в базу данных. wp_cache_add_non_persistent_groups()
позволяет обойти эту особенность, гарантируя, что указанные группы будут сохраняться только на время текущей сессии.
Пример 1: Добавление непостоянных групп для временных данных
Предположим, у нас есть данные, которые используются только в процессе генерации текущей страницы, такие как временные результаты вычислений. Эти данные не нужно сохранять между сессиями, поэтому можно пометить их как непостоянные.
// Указываем группы 'temp_data' и 'transient_results' как непостоянные
wp_cache_add_non_persistent_groups(['temp_data', 'transient_results']);
// Добавляем временные данные в кэш
wp_cache_add('calc_result', 42, 'temp_data');
Теперь данные, добавленные в группу temp_data
, будут очищены в конце текущей сессии и не будут доступны при следующей загрузке страницы.
Пример 2: Кэширование API-запросов, актуальных только в рамках одной сессии
Если ваш сайт выполняет частые запросы к внешнему API, кэширование ответов может помочь улучшить производительность. Однако, если данные актуальны только для текущей страницы, можно использовать непостоянные группы для их временного хранения.
// Указываем группу 'api_cache' как непостоянную
wp_cache_add_non_persistent_groups('api_cache');
// Добавляем данные от API в кэш
$response_data = ['status' => 'success', 'data' => ['id' => 123, 'name' => 'Example']];
wp_cache_add('api_response_123', $response_data, 'api_cache');
Таким образом, данные от API будут храниться в кэше только до конца текущей сессии, что минимизирует нагрузку на память и исключает устаревание данных.
Пример 3: Управление временными данными для одного пользователя
В этом примере рассмотрим ситуацию, когда данные используются исключительно для текущей сессии пользователя и не должны кэшироваться между сессиями. Например, это может быть временный статус для выполнения операции.
// Указываем группу 'session_temp' как непостоянную
wp_cache_add_non_persistent_groups('session_temp');
// Добавляем временные данные для текущей сессии пользователя
wp_cache_add('operation_status', 'in_progress', 'session_temp');
После завершения операции, кэш для группы session_temp
будет очищен в конце сессии, гарантируя, что статус не сохранится между перезагрузками страницы.
Заключение
Функция wp_cache_add_non_persistent_groups()
позволяет эффективно управлять временными данными, которые должны быть доступны только на протяжении одной генерации страницы или сессии пользователя. Она помогает контролировать кэш и избегать избыточного сохранения данных, которые теряют актуальность после завершения текущего запроса.