wp_cache_set

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

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

Хуков нет.

Возвращает

Всегда возвращает 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) ){
	$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-includes/cache.php

WP 4.7.2

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

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

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *