Получение ��ременного сайта с помощью GET_SITE_TRANSIENT()
Функция GET_SITE_TRANSIENT()
позволяет получать значение временного хранилища (транзиента) для сайта на платформе WordPress.
Если временный хранилище не существует, его значение отсутствует или срок его действия истек, функция вернет значение false
.
Хуки из функции
pre_site_transient_(transient)
site_transient_(transient)
Возвращаемое значение
Значение типа Mixed. Это значение временного хранилища.
Применение
Для получения временного хранилища используется следующая функция:
get_site_transient( $transient );
- $transient (строка) (обязательный параметр) — имя временного хранилища. Оно не должно содержать символов, предназначенных для SQL.
Примеры
Пример 1
Предположим, у нас есть данные, которые используются на всех сайтах сети. Эти данные нужно получить через HTTP-запрос с другого сайта, поэтому хорошей идеей будет кэшировать этот запрос. Эта функция подходит для данной задачи. Логика такого кода выглядит следующим образом:
$transient = 'some_trans_name';
$remote_data = get_site_transient( $transient );
if( false === $remote_data ){
$remote_data = file_get_contents( 'http://dom.ru/promo/yith-promo.xml' );
}
if( $remote_data ){
set_site_transient( $transient, $remote_data, WEEK_IN_SECONDS );
}
Заметки
- Подробнее о функции
get_transient()
можно прочитать в документации WordPress.
Изменения
- С версии 2.9.0 — функция была введена.
Код функции GET_SITE_TRANSIENT()
function get_site_transient( $transient ) {
/**
* Фильтрует значение существующего временного хранилища перед его получением.
*
* Динамическая часть имени хуков — $transient
, относится к названию временного хранилища.
*
* Возвращение значения, отличного от false
, прервет процесс получения и вернет это значение.
*
* @since 2.9.0
* @since 4.4.0 Параметр $transient
был добавлен.
*
* @param mixed $pre_site_transient Значение по умолчанию, если временное хранилище не существует.
* Любое значение, кроме false
, приведет к прекращению получения.
* @param string $transient Имя временного хранилища.
*/
$pre = apply_filters( "pre_site_transient_{$transient}", false, $transient );
if ( false !== $pre ) {
return $pre;
}
if ( wp_using_ext_object_cache() || wp_installing() ) {
$value = wp_cache_get( $transient, 'site-transient' );
} else {
// Основные транзиенты, не имеющие времени жизни.
$no_timeout = array( 'update_core', 'update_plugins', 'update_themes' );
$transient_option = '_site_transient_' . $transient;
if ( ! in_array( $transient, $no_timeout, true ) ) {
$transient_timeout = '_site_transient_timeout_' . $transient;
wp_prime_site_option_caches( array( $transient_option, $transient_timeout ) );
$timeout = get_site_option( $transient_timeout );
if ( false !== $timeout && $timeout < time() ) {
delete_site_option( $transient_option );
delete_site_option( $transient_timeout );
$value = false;
}
}
if ( ! isset( $value ) ) {
$value = get_site_option( $transient_option );
}
}
/**
* Фильтрует значение существующего временного хранилища.
*
* Динамическая часть имени хуков — $transient
, относится к названию временного хранилища.
*
* @since 2.9.0
* @since 4.4.0 Параметр $transient
был добавлен.
*
* @param mixed $value Значение временного хранилища.
* @param string $transient Имя временного хранилища.
*/
return apply_filters( "site_transient_{$transient}", $value, $transient );
}
Связанные функции
delete_expired_transients()
delete_transient()
get_transient()
set_site_transient()
set_transient()
Эти функции помогают работать с временными хранилищами, добавляя, удаляя и получая данные.