wp_cache_set()WP 2.0.0

Добавляет данные в кэш объектов. Перезапишет кэш, если он существует.

Эта функция записывает и перезаписывает кэш, в отличии от wp_cache_add(), которая только записывает кэш, если его еще нет.

Смотрите также:

Работает на основе: WP_Object_Cache::set()
1 раз — 0.000174 сек (быстро) | 50000 раз — 1.98 сек (быстро) | PHP 7.1.11, WP 4.9.8

Хуков нет.

Возвращает

true|false.

Использование

wp_cache_set( $key, $data, $group, $expire );
$key(строка/число) (обязательный)
Ключ, по которому потом можно получить данные.
$data(смешанный) (обязательный)
Данные, которые нужно записать в кэш.
$group(строка)
Позволяет группировать данные кэша. Чтобы можно было использовать одинаковые ключи в разных группах.
По умолчанию: 'default'
$expire(число)

Определяет время жизни кэша в секундах.

Нет смысла использовать этот параметр, если на сайте не установлен плагин объектного кэширования, потому что без него, WordPress сохраняет кэш только на время генерации страницы, а этот параметр игнорируется, т.е. постоянно ничего никуда не кэшируется.
По умолчанию: 0 (бесконечно)

Примеры

0

#1 Создаем свой кэш и получаем его где необходимо

Допустим мы сделали тяжелый запрос к БД и данные этого запроса нам будут нужны в разных местах страницы, тогда мы может записать эти данные в кэш и в дальнейшем, если он не пустой, получать их без запроса к БД:

// устанавливаем свой ключ кэша
$cache_key = 'my_db_result';

// Если данных нет в кэше, то делаем запрос получаем данные и записываем их в кэш
$my_db_result = wp_cache_get( $cache_key );
if( false === $my_db_result ){
	global $wpdb;
	$my_db_result = $wpdb->get_results(
		"SELECT * FROM $wpdb->posts WHERE post_type = 'books'"
	);

	wp_cache_set( $cache_key, $my_db_result );
}

// тут $my_db_result содержит результат запроса,
// который будет взят из кэша, если он есть или получен из БД

print_r( $my_db_result );

Заметки

  • Смотрите: WP_Object_Cache::set()
  • Global. WP_Object_Cache. $wp_object_cache Object cache global instance.

Список изменений

С версии 2.0.0 Введена.

Код wp_cache_set() WP 6.4.3

function wp_cache_set( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->set( $key, $data, $group, (int) $expire );
}