wp_cache_set()
Додає дані до кешу об’єктів. Перезапише кеш, якщо вона існує.
Ця функція записує та перезаписує кеш, на відміну від wp_cache_add() , яка тільки записує кеш, якщо його ще немає.
Дивіться також:
Докладніше про об’єктний кеш у WordPress .
- wp_cache_add() – додає кеш, нічого не робить, якщо кеш вже є.
- wp_cache_get() – отримує кеш.
WP_Object_Cache::set()
(швидко) | 50000 разів – 1.98 сек
(швидко) |
PHP 7.1.11, WP 4.9.8
Хуків немає.
Повертає
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.0.2
function wp_cache_set( $key, $data, $group = '', $expire = 0 ) { Global $wp_object_cache; return $wp_object_cache->set( $key, $data, $group, (int) $expire ); }