WordPress как на ладони
Официальная конференция по WordPress в Moскве 18-19 августа, начало в 9:00 wordpress jino

wp_cache_set() WP 2.0

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

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

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

wp_cache_add() - добавляет кэш, ничего не делает, если кэш уже есть.
wp_cache_get() - получает кэш.

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

Хуков нет.

Возвращает

Всегда возвращает true.

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

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

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

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

Примеры

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

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

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

// Если данных нет в кэше, то делаем запрос получаем данные и записываем их в кэш
if( ! $my_db_result = wp_cache_get( $cache_key ) ){
	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_cache_set: wp-includes/cache.php VER 4.9.8

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

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

Cвязанные функции

Из метки: cache (кэш кеш)

Еще из раздела: Кэш (object cache)

Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться