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(логический)
Что вернуть если кэш найден, но он пустой?
По умолчанию: null (вернет false, если кэш не найден)

Примеры

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

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

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

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

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

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

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

	wp_cache_set( $cache_key, $db_result );
}

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

print_r( $db_result );

Заметки

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

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

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

Код wp cache get: wp-includes/cache.php WP 5.3

<?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 (кэш кеш)

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