WP_CACHE_ADD() │ WP 2.0.0
Функция WP_CACHE_ADD() позволяет добавлять данные в кэш, если ключ кэша уже не существует. Это помогает ускорить работу вашего сайта, избавляя от излишних запросов к базе данных.
Возврат (RETURN)
Функция возвращает true, если данные успешно добавлены в кэш, и false, если ключ кэша и группа уже существуют.
Использование (USAGE)
Синтаксис функции:
wp_cache_add( $key, $data, $group, $expire );
Параметры:
- $key (int|string) (обязательный): Ключ кэша, который будет использоваться для будущих запросов.
- $data (mixed) (обязательный): Данныя, которые нужно добавить в кэш.
- $group (string): Группа, в которую добавляется кэш. Это позволяет использовать одинаковый ключ в разных группах. По умолчанию:
''(пустая строка). - $expire (int): Время, через которое данные кэша станут недействительными, в секундах. По умолчанию:
0(без истечения срока).
Примеры (EXAMPLES)
Пример 1: Добавление кэша, если его еще нет
Функция get_the_terms() сохраняет данные в кэше и обращается к ним при следующем вызове, тем самым избегая повторных запросов к базе данных.
function _get_the_terms( $post, $taxonomy ) {
// Попытка получить данные из кэша
$terms = get_object_term_cache( $post->ID, $taxonomy );
if( false === $terms ){
// Кэша нет, получаем термины
$terms = wp_get_object_terms( $post->ID, $taxonomy );
if ( ! is_wp_error( $terms ) ) {
// Добавляем данные в кэш
$term_ids = wp_list_pluck( $terms, 'term_id' );
wp_cache_add( $post->ID, $term_ids, $taxonomy . '_relationships' );
}
}
return $terms;
}
Пример 2: Использование объектного кэша
Этот пример лишь для тех, кто использует плагины для объектного кэширования. Благодаря кэшу, вы не должны выполнять так много кода.
function wp_widget_recent_entries( $args ) {
$cache_key = 'widget_recent_entries';
$cache_on = true;
if( $cache_on ){
$output = wp_cache_get( $cache_key, 'widget' );
if( $output ){
echo $output;
return;
}
ob_start();
}
extract( $args );
$options = get_option( 'widget_recent_entries' );
$title = empty( $options['title'] ) ? __( 'Недавние записи' ) : apply_filters( 'widget_title', $options['title'] );
$number = (int) $options['number'];
// Ограничиваем количество записей
if( ! $number ){
$number = 10;
}
elseif( $number < 1 ){
$number = 1;
}
elseif( $number > 15 ){
$number = 15;
}
$r = new WP_Query( [
'posts_per_page' => $number,
'nopaging' => 0,
'post_status' => 'publish',
'caller_get_posts' => 1,
] );
if( $r->have_posts() ) :
echo $before_widget;
if( ! empty( $title ) ){
echo $before_title . $title . $after_title;
}
?>
have_posts() ) : $r->the_post(); ?>
- = esc_html( get_the_title() ?: get_the_ID() ) ?>
Пример 3: Получение статистики кэша
Вы можете получить статистику кэша в конце PHP скрипта:
global $wp_object_cache;
$wp_object_cache->stats(); // отображает информацию о кэше
Примечания (NOTES)
- Для более подробной информации смотрите:
WP_Object_Cache::add(). - Глобальный экземпляр объекта кэша:
$wp_object_cache.
Изменения (CHANGELOG)
- С версии 2.0.0 — введена в использование.
Теперь вы знаете, как использовать WP_CACHE_ADD() для оптимизации работы вашего сайта на WordPress. Это полезно для ускорения загрузки страниц и уменьшения нагрузки на базу данных.