wp_cache_get() WP 2.0
Получает данные из объектного кэша по указанным ключу и группе.
Работа с кэшем происходит с помощью экземпляра класса WP_Object_Cache. Данные сохраняются в память на время генерации страницы. Если используется плагин объектного кэширования, то данные сохраняются в объектный кэш на больший строк, чем время генерации страницы, и с ними можно работать между разными генерациями страниц. В этом собственно и есть вся суть плагинов объектного кэширования...
Смотрите также:
- wp_cache_add() — добавляет кэш. Ничего не делает, если кэш уже есть.
- wp_cache_set() — добавляет кэш. Обновляет кэш, если кэш уже есть.
Хуков нет.
Возвращает
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 cache get WP 5.6
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 (кэш кеш)
- _prime_post_caches()
- clean_comment_cache()
- clean_post_cache()
- clean_user_cache()
- wp_cache_add()
- wp_cache_add_global_groups()