wp_cache_get()
Получает данные из объектного кэша по указанным ключу и группе.
Работа с кэшем происходит с помощью экземпляра класса WP_Object_Cache. Данные сохраняются в память на время генерации страницы. Если используется плагин объектного кэширования, то данные сохраняются в объектный кэш на больший строк, чем время генерации страницы, и с ними можно работать между разными генерациями страниц. В этом собственно и есть вся суть плагинов объектного кэширования.
Подробнее про Объектный кэш в WordPress.
Смотрите также:
-
wp_cache_add() — добавляет кэш. Ничего не делает, если кэш уже есть.
- wp_cache_set() — добавляет кэш. Обновляет кэш, если кэш уже есть.
Хуков нет.
Возвращает
Разное|false
. Данные кэша или false, если не удалось получить данные.
Использование
wp_cache_get( $key, $group, $force, $found );
- $key(строка/число) (обязательный)
- Ключ идентификатор кэша.
- $group(строка)
- Это возможность группировать данные кэша. Позволяет использовать одинаковый ключ для разных групп кэша.
По умолчанию: '' - $force(логический)
- Обновлять ли локальный кэш из постоянного во время получения данных. Постоянный кэш работает в WP только с использованием спец. плагинов.
По умолчанию: false - & $found(логический)
- Что вернуть если кэш найден, но он пустой?
По умолчанию: null (вернет false, если кэш не найден)
Примеры
#1 Получение данных их кэша
По умолчанию большинство данных хранится в кэше. Например, опции WordPress добавляются в кэш при первом обращении, и все последующие разы эта опция будет извлекаться из кэша, а не из БД. Это сделано для того, чтобы минимизировать количество запросов к базе данных.
Вот как мы можем получить метаданные пользователя из кэша:
$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 6.8
function wp_cache_get( $key, $group = '', $force = false, &$found = null ) { global $wp_object_cache; return $wp_object_cache->get( $key, $group, $force, $found ); }