## Установка временных значений сайта с помощью функции SET_SITE_TRANSIENT()
Функция set_site_transient() позволяет устанавливать и обновлять временные значения на сайте WordPress. Временные значения — это данные, которые хранятся на сервере ненадолго, и их можно использовать для временного кэширования информации.
### Основные моменты
- **Не нужно сериализовать значения**: Если значение требует сериализации (преобразования в строку), то это происходит автоматически, прежде чем значение будет установлено.
- **Основные функции, которые используют set_site_transient()**: Например, используется в функции wp_check_browser_version().
### Хуки, связанные с функцией
- pre_set_site_transient_(transient) — вызывается перед установкой значения временного значения.
- expiration_of_site_transient_(transient) — вы��ывается при определении времени истечения временного значения.
- set_site_transient_(transient) — вызывается после успешной установки временного значения.
- setted_site_transient — вызывается после установки временного значения.
### Возвращаемое значение
Функция возвращает true, если значение успешно установлено, и false, если нет.
### Пример использования
```php
set_site_transient( $transient, $value, $expiration );
$transient(string) — название временного значения. Должно быть длиной не более 167 символов и не должно содержать SQL-запросов.$value(mixed) — значение временного значения. Также не должно содержать SQL-запросов.$expiration(int) — время до истечения в секундах. По умолчанию: 0 (без истечения).
Пояснение кода функции
Функция находится в файле wp-includes/option.php. Вот упрощённая версия того, как она работает:
function set_site_transient( $transient, $value, $expiration = 0 ) {
$value = apply_filters( "pre_set_site_transient_{$transient}", $value, $transient );
$expiration = (int) $expiration;
$expiration = apply_filters( "expiration_of_site_transient_{$transient}", $expiration, $value, $transient );
if ( wp_using_ext_object_cache() || wp_installing() ) {
$result = wp_cache_set( $transient, $value, 'site-transient', $expiration );
} else {
$transient_timeout = '_site_transient_timeout_' . $transient;
$option = '_site_transient_' . $transient;
wp_prime_site_option_caches( array( $option, $transient_timeout ) );
if ( false === get_site_option( $option ) ) {
if ( $expiration ) {
add_site_option( $transient_timeout, time() + $expiration );
}
$result = add_site_option( $option, $value );
} else {
if ( $expiration ) {
update_site_option( $transient_timeout, time() + $expiration );
}
$result = update_site_option( $option, $value );
}
}
if ( $result ) {
do_action( "set_site_transient_{$transient}", $value, $expiration, $transient );
do_action( 'setted_site_transient', $transient, $value, $expiration );
}
return $result;
}
Связанные функции
_transient(опции)delete_expired_transients()— удаляет устаревшие временные значения.delete_transient()— удаляет указанное временное значение.get_site_transient()— получает значение временного значения сайта.get_transient()— получает указанное временное значение.set_transient()— устанавливает временное значение.
Итоги
Функция set_site_transient() очень полезна для оптимизации работы сайта, так как позволяет кэшировать данные на время, избегая повторных запросов к базе данных. Используйте её для установки временных значений, которые могут быть полезны для вашего сайта.