wp_cache_set()
Добавляет данные в кэш объектов. Перезапишет кэш, если он существует.
Эта функция записывает и перезаписывает кэш, в отличии от wp_cache_add(), которая только записывает кэш, если его еще нет.
Смотрите также:
-
Подробнее про объектный кэш в WordPress.
- wp_cache_add() — добавляет кэш, ничего не делает, если кэш уже есть.
- wp_cache_get() — получает кэш.
Хуков нет.
Возвращает
true|false
.
Использование
wp_cache_set( $key, $data, $group, $expire );
- $key(строка/число) (обязательный)
- Ключ, по которому потом можно получить данные.
- $data(смешанный) (обязательный)
- Данные, которые нужно записать в кэш.
- $group(строка)
- Позволяет группировать данные кэша. Чтобы можно было использовать одинаковые ключи в разных группах.
По умолчанию: 'default' - $expire(число)
Определяет время жизни кэша в секундах.
Нет смысла использовать этот параметр, если на сайте не установлен плагин объектного кэширования, потому что без него, WordPress сохраняет кэш только на время генерации страницы, а этот параметр игнорируется, т.е. постоянно ничего никуда не кэшируется.
По умолчанию: 0 (бесконечно)
Примеры
#1 Создаем свой кэш и получаем его где необходимо
Допустим мы сделали тяжелый запрос к БД и данные этого запроса нам будут нужны в разных местах страницы, тогда мы может записать эти данные в кэш и в дальнейшем, если он не пустой, получать их без запроса к БД:
// устанавливаем свой ключ кэша $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::set()
- Global. WP_Object_Cache. $wp_object_cache Object cache global instance.
Список изменений
С версии 2.0.0 | Введена. |
Код wp_cache_set() wp cache set WP 6.6.2
function wp_cache_set( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; return $wp_object_cache->set( $key, $data, $group, (int) $expire ); }