WP_CACHE_GET() │ WP 2.0.0
Функция wp_cache_get() позволяет получить данные из кэша по указанному ключу и группе.
Работа с кэшем осуществляется через объект класса WP_Object_Cache. Данные кэша сохраняются в оперативной памяти сервера (RAM) во время генерации страницы. Если у вас установлен плагин для постоянного кэширования, информация может храниться дольше и использоваться при повторных посещениях страниц.
Сопутствующие функции
wp_cache_add()— добавляет новые данные в кэш; если кэш с таким ключом уже существует, ничего не происходит.wp_cache_set()— сохраняет данные в кэше.
Применение и скорость
- Используется в:
wp_load_alloptions() - Время выполнения: 1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.054485 сек
Возвращаемые значения
Возвращает данные кэша при успешном выполнении или false, если данные не найдены.
Использование функции
wp_cache_get( $key, $group, $force, $found );
Параметры
- $key (int|string): (обязательный) Ключ, под которым хранится содержимое кэша.
- $group (string): Группа, к которой относятся данные кэша. По умолчанию:
''. - $force (true|false): Нужно ли принудительно обновить локальный кэш из постоянного. По умолчанию:
false. - $found (true|false): (передается по ссылке) Указывает, найден ли ключ в кэше. По умолчанию:
null.
Примеры использования
Пример 1: Получение данных из кэша
По умолчанию, большинство данных сохраняется в кэше. Например, настройки WordPress добавляются в кэш при первом запросе, а при последующих запросах будут извлекаться из кэша, а не из базы данных. Это делается, чтобы сократить количество запросов к базе данных.
Таким образом, чтобы получить данные о метаданных пользователя из кэша, используем следующий код:
$user_meta = wp_cache_get( 1, 'user_meta' );
Пример 2: Сохранен��е данных в кэше и извлечение их при необходимости
Предположим, что у нас есть тяжелый запрос к базе данных, и его результат нужен в разных частях страницы. Мы можем сохранить его в кэше и обращаться к нему каждый раз, когда это необходимо. Это избавляет от необходимости выполнять один и тот же запрос к базе данных много раз для одной страницы.
$cache_key = 'my_db_result';
// Выполняем запрос к базе данных и сохраняем его в кэш, если данных с этим ключом нет:
$my_db_result = wp_cache_get( $cache_key );
if( false === $my_db_result ){
global $wpdb;
$my_db_result = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'books'");
wp_cache_set( $cache_key, $my_db_result );
}
// $my_db_result содержит те же данные, что и в кэше
print_r( $my_db_result );
Такое кэширование имеет смысл только в том случае, если на вашем сайте установлен плагин для объекта кэширования.
Заметки
- Смотрите:
WP_Object_Cache::get() - Глобальная переменная:
$wp_object_cache— экземпляр глобального объекта кэша.
История изменений
- С версии 2.0.0 — введена функция.
Код функции wp_cache_get()
function wp_cache_get( $key, $group = '', $force = false, &$found = null ) {
global $wp_object_cache;
return $wp_object_cache->get( $key, $group, $force, $found );
}
Связанные функции
_prime_post_caches()clean_comment_cache()clean_post_cache()clean_user_cache()wp_cache_add()- и другие функции для работы с кэшем.
Теперь вы можете использовать wp_cache_get() для эффективного получения данных из кэша и оптимизации работы вашего сайта на WordPress!