Для чего нужны транзиенты в Wordpress и что это такое, как ими управлять и что с ними делать.
Что такое транзиенты?
Транзиенты в WordPress – это способ временного хранения данных. Они позволяют сохранять данные с указанием времени жизни. По истечении этого времени данные автоматически удаляются. Это полезно для уменьшения нагрузки на сервер, так как часто используемые данные не запрашиваются каждый раз заново.
Транзиенты храняться в таблице wp_options
. Данные сохраняются в виде пары ключ = значение
Где применяются транзиенты?
Транзиенты используются для кэширования данных, полученных из внешних источников, обработки тяжелых запросов к базе данных и хранения временных данных с ограниченным сроком действия.
Например, они применяются для кэширования результатов API запросов, частых запросов к базе данных или результатов сложных вычислений.
Как работать с транзиентами?
В WordPress для работы с транзиентами используются функции:
— set_transient($key, $value, $expiration)
– для создания или обновления транзиента.
— get_transient($key)
– для получения значения транзиента.
— delete_transient($key)
– для удаления транзиента.
Пример использования
// Создание транзиента на 12 часов
set_transient('my_transient_key', 'my_transient_value', 12 * HOUR_IN_SECONDS);
// Получение значения транзиента
$value = get_transient('my_transient_key');
// Удаление транзиента
delete_transient('my_transient_key');
Преимущества использования
Использование транзиентов снижает нагрузку на базу данных и ускоряет загрузку страниц, так как данные кэшируются и не запрашиваются повторно до истечения срока действия транзиента.
Ограничения и особенности
Транзиенты хранятся в базе данных, что может вызвать дополнительные нагрузки при большом количестве транзиентов. Важно правильно устанавливать срок действия транзиентов, чтобы избежать устаревших данных и эффективно использовать кэширование.
Очистка транзиентов
Часто транзиенты не удаляются из базы, хотя все они и имеют срок жизни. Из личного опыта по разработке и сопровождению сайтов у нас часто были случаи, когда у сайта накапливалось около миллиона транзиентов, что дает нагрузку на базу. Да и вообще, миллион ненужных записей…
Есть два основных способа удаления ненужных транзиентов и очистка таблицы.
Первый: использование специальных плагинов, которые ускоряют сайты (их много). Например, «perfmatters». Там есть опция – «Просроченные транзиенты» (и много других для очистки базы сайта от мусора).
Второй: SQL-запрос к базе.
DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%');