_prime_post_caches()
Добавляет в объектный кэш указанные записи (посты). Посты, которые уже есть в кэше, пропускаются. Также создает связанный кэш терминов и метаданых.
Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.
Работает на основе: _get_non_cached_ids(), update_post_caches()
1 раз — 0.012805 сек (тормоз) | 50000 раз — 0.78 сек (очень быстро)
Хуков нет.
Возвращает
null. Ничего.
Использование
_prime_post_caches( $ids, $update_term_cache, $update_meta_cache );
- $ids(массив) (обязательный)
- Массив ID записей, которые нужно проверить и если их еще нет в кэше, добавить в кэш.
- $update_term_cache(true/false)
- Нужно ли обновлять связанный кэш терминов (категорий).
По умолчанию: true - $update_meta_cache(true/false)
- Нужно ли обновлять связанный кэш метаданных (произвольных полей).
По умолчанию: true
Примеры
#1 Добавим записи в кэш при обработке комментов
Пример из ядра, из функции get_comments().
// Prime comment post caches.
if ( $this->query_vars['update_comment_post_cache'] ) {
$comment_post_ids = array();
foreach ( $_comments as $_comment ) {
$comment_post_ids[] = $_comment->comment_post_ID;
}
_prime_post_caches( $comment_post_ids, false, false );
} #2 Добавим записи в кэш при получении постов
Пример из ядра, из функции get_posts().
$ids = $wpdb->get_col( $this->request );
if ( $ids ) {
$this->posts = $ids;
$this->set_found_posts( $q, $limits );
_prime_post_caches( $ids, $q['update_post_term_cache'], $q['update_post_meta_cache'] );
} else {
$this->posts = array();
}
Заметки
- Смотрите: update_post_cache()
- Смотрите: update_postmeta_cache()
- Смотрите: update_object_term_cache()
- Global. wpdb. $wpdb WordPress database abstraction object.
Список изменений
| С версии 3.4.0 | Введена. |
| С версии 6.1.0 | This function is no longer marked as "private". |