wp_cache_get

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

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

Хуков нет.

Возвращает

Данные кэша или 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-includes/cache.php

WP 4.7.2

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

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