Что такое TRANSIENT?
В WordPress transient — это механизм временного кэширования данных с автоматическим сроком жизни (TTL).
Проще:
transient = временное значение в базе (или кэше), которое само “протухает”
🧠 Зачем нужны transient
Чтобы не выполнять тяжёлые операции каждый раз:
-
сложные
WP_Query -
API-запросы
-
генерация sitemap
-
вычисления SEO-данных
📦 Как это выглядит
Установка
set_transient('my_key', $data, 3600);
👉 сохранить данные на 1 час
Получение
$data = get_transient('my_key');
Удаление
delete_transient('my_key');
🔁 Как это работает
$data = get_transient('my_key');
if ($data === false) {
// кэша нет или истёк
$data = expensive_function();
set_transient('my_key', $data, 3600);
}
return $data;
📍 Где хранятся transient
По умолчанию:
👉 в таблице:
wp_options
ключи выглядят так:
_transient_my_key
_transient_timeout_my_key
Если есть object cache (Redis/Memcached)
Тогда transient хранятся:
👉 в памяти (быстрее)
⏱ Время жизни
set_transient('key', $data, 3600);
| значение | смысл |
|---|---|
| 60 | 1 минута |
| 3600 | 1 час |
| 86400 | 1 день |
❗ Важно
TTL — это максимальное время, а не гарантия:
transient может исчезнуть раньше
(например при очистке кэша)
🔥 Примеры использования
1. Кэш WP_Query
$posts = get_transient('latest_posts');
if ($posts === false) {
$posts = get_posts([...]);
set_transient('latest_posts', $posts, 600);
}
2. Кэш API
$response = get_transient('api_data');
if ($response === false) {
$response = wp_remote_get('https://api.site.com');
set_transient('api_data', $response, 3600);
}
3. Sitemap
$xml = get_transient('sitemap');
if ($xml === false) {
$xml = generate_sitemap();
set_transient('sitemap', $xml, 3600);
}
⚠️ Важные особенности
1. Не для постоянных данных
❌ нельзя хранить:
-
настройки
-
важные данные
👉 transient может исчезнуть
2. Автоудаление
WordPress сам удаляет истёкшие transient не сразу, а при обращении к ним.
3. Может быть очищен полностью
При:
-
очистке кэша
-
обновлении плагинов
-
некоторых хостингах
🧠 Transient vs Options
| transient | option | |
|---|---|---|
| время жизни | есть | нет |
| может исчезнуть | да | нет |
| назначение | кэш | постоянные данные |
🚀 Когда использовать
Используй transient, если:
✔ данные тяжело получать
✔ можно пересчитать
✔ не критично потерять
❌ Когда НЕ использовать
❌ SEO мета
❌ важные даты
❌ пользовательские настройки
🏁 Итог
Transient — это встроенный кэш WordPress с TTL
Он:
✔ ускоряет сайт
✔ снижает нагрузку
✔ автоматически “протухает”
No comments to display
No comments to display