Описание pre_set_transient_{$transient}
— Filter
Хук pre_set_transient_{$transient} позволяет изменять данные, которые будут сохранены в транзиенте перед их записью в базу данных. Он срабатывает перед сохранением любого транзиента, что дает возможность модифицировать данные или предотвратить их сохранение
Примеры использования
Пример изменения значения перед его сохранением в транзиент:
add_filter('pre_set_transient_my_transient', function($value) {
return 'Новое значение';
});
В этом примере мы изменяем значение транзиента ‘my_transient’ на ‘Новое значение’ перед его сохранением
Пример предотвращения сохранения транзиента:
add_filter('pre_set_transient_my_transient', function($value) {
return false; // Не сохраняем транзиент
});
Здесь мы возвращаем false, что предотвращает сохранение транзиента ‘my_transient’
Пример модификации массива перед сохранением:
add_filter('pre_set_transient_my_transient', function($value) {
if (is_array($value)) {
$value['новый_ключ'] = 'новое значение';
}
return $value;
});
В этом примере мы добавляем новый элемент в массив перед его сохранением в транзиент
— Лучшие практики
– Использование
Используйте этот хук, когда требуется изменить или модифицировать данные, которые будут сохранены в транзиенте
– Производительность
Изменения, сделанные с помощью этого хука, не должны значительно влиять на производительность, так как они происходят в памяти перед записью в базу данных
– Предупреждения
Убедитесь, что изменения не нарушают логику вашей программы и не приводят к некорректному поведению
Альтернативы
Тип: function
Функция для установки транзиента напрямую с возможностью модификации перед вызовом
Используйте ее, если вам нужно установить транзиент с конкретными данными без использования хуков