wp_cache_get_last_changed() – Возвращение даты последнего изменения для группы кэша

# wp_cache_get_last_changed() │ WP 4.7.0

Функция wp_cache_get_last_changed() возвращает дату последнего изменения для указанной группы кэша. Это означает, что вы можете узнать, когда именно данные в этой группе кэша были обновлены. 

## Возврат значения

Функция возвращает строку — UNIX-метку времени с микросекундами, которая показывает, когда группа данных в кэше была изменена в последний раз.

## Использование

Вот как выглядит синтаксис вызова функции:

```php
wp_cache_get_last_changed( $group );

Параметры

  • $group (строка) (обязательный) — Группа, в которой содержится кэш.

Примеры использования

Пример 1: Использование временных меток при создании кэша

Ниже приведён упрощённый фрагмент кода из ядра WordPress, который используется в функции get_pages() для кэширования результатов.

function some_cache_orientated_function() {
    $key = md5( serialize( 'Некоторые данные, не важно какие' ) );

    $last_changed = wp_cache_get_last_changed( 'posts' ); // Получаем время последнего изменения кэша

    $cache_key = "get_pages:$key:$last_changed"; // Формируем ключ для кэша

    // Получаем кэш
    $cache = wp_cache_get( $cache_key, 'posts' );

    // Если кэш существует, возвращаем его
    if ( false !== $cache ) {
        return $pages;
    }

    // Если кэша нет, запрашиваем данные из базы данных
    $pages = $wpdb->get_results('SQL запрос для постов' );

    // Сохраняем только ID
    $page_structure = array();
    foreach ( $pages as $page ) {
        $page_structure[] = $page->ID;
    }

    // Кэша нет, получаем данные и сохраняем в кэш
    wp_cache_set( $cache_key, $page_structure, 'posts' );

    return $pages;
}

Этот пример показывает, как использовать функцию wp_cache_get_last_changed() для проверки времени последнего изменения кэша перед его использованием.

Изменения

С версии 4.7.0 была внедрена данная функция.

Код функции

Вот код функции wp_cache_get_last_changed():

function wp_cache_get_last_changed( $group ) {
    $last_changed = wp_cache_get( 'last_changed', $group );

    if ( $last_changed ) {
        return $last_changed;
    }

    return wp_cache_set_last_changed( $group );
}

Связанные функции

Вот некоторые функции, которые также относятся к кэшированию:

  • _prime_post_caches()
  • clean_comment_cache()
  • clean_post_cache()
  • clean_user_cache()
  • wp_cache_add()
  • wp_cache_add_global_groups()
  • wp_cache_decr()
  • wp_cache_delete()
  • wp_cache_flush()
  • wp_cache_get()
  • wp_cache_incr()
  • wp_cache_replace()
  • wp_cache_set()
  • wp_clean_update_cache()
  • WP_Embed::delete_oembed_caches()
  • wp_using_ext_object_cache()

Эти функции могут быть полезны для более глубокой работы с кэшированием в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *