WordPress как на ладони
Дешевый WordPress пакет для разработки Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_cache_get() WP 2.0

Получает данные из кэша по указанным ключу и группе.

Работа с кэшем происходит с помощью класса $wp_object_cache. Данные сохраняются в память на время генерации страницы. Если используется плагин объектного кэширования, то данные сохраняются в объектный кэш на больший строк, чем время генерации страницы, и с ними можно работать между разными генерациями страниц. В этом собственно и есть вся суть плагинов объектного кэширования...

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

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

Является основой для: wp_load_alloptions()
Работает на основе: WP_Object_Cache::get()
✈ 1 раз = 0.000001с = скорость света | 50000 раз = 0.054485с = скорость света PHP 7.1.11, WP 4.9.8

Хуков нет.

Возвращает

false/разное. Данные кэша или false, если не удалось получить данные.

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

wp_cache_get( $key, $group, $force, $found );
$key(строка/число) (обязательный)
Ключ идентификатор кэша.
По умолчанию: нет
$group(строка)
Это возможность группировать данные кэша. Позволяет использовать одинаковый ключ для разных групп кэша.
По умолчанию: нет
$force(логический)
Обновлять ли локальный кэш из постоянного во время получения данных. Постоянный кэш работает в WP только с использованием спец. плагинов и обычно он записывается на диске.
По умолчанию: false
$found(логический)
Что вернуть если кэш найден, но он пустой? Возвращает false, если кэш не найден.
По умолчанию: null

Примеры

#1. Получение данных их кэша

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

$user_meta = wp_cache_get( 1, 'user_meta' );

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

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

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

// Если данных нет в кэше, то делаем запрос получаем данные и записываем их в кэш
if( ! $my_db_result = wp_cache_get($cache_key) ){
	$my_db_result = $wpdb->get_results( $query );

	wp_cache_set($cache_key, $my_db_result );
}

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

print_r($my_db_result);

Код wp_cache_get: wp-includes/cache.php VER 4.9.8

<?php
function wp_cache_get( $key, $group = '', $force = false, &$found = null ) {
	global $wp_object_cache;

	return $wp_object_cache->get( $key, $group, $force, $found );
}

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

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

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