Функция clean_comment_cache()
в WordPress предназначена для удаления кэша определенного комментария или группы комментариев. Это полезно для обновления данных в кэше, особенно после изменения комментариев, что позволяет избежать отображения устаревшей информации.
clean_comment_cache( int|array $ids ): void
Описание параметров
- $ids (int или массив, обязательный): ID одного комментария или массив из нескольких ID комментариев, кэш которых нужно удалить.
Возвращаемое значение
- null: Функция не возвращает никакого значения.
⚠️ Примечание: Если глобальная переменная
$_wp_suspend_cache_invalidation
непуста, функция не будет очищать кэш. Это может быть полезно, если временно необходимо отключить инвалидацию кэша. Подробности можно найти в описании функцииwp_suspend_cache_invalidation()
.
Пример 1: Очистка кэша для одного комментария
В этом примере очищается кэш для одного комментария с ID 42
. Это может быть полезно, например, после редактирования содержания комментария.
// Очищаем кэш комментария с ID 42.
clean_comment_cache( 42 );
Этот вызов удаляет кэшированный объект комментария с указанным ID, чтобы при последующих запросах на сайт отобразились актуальные данные.
Пример 2: Очистка кэша для нескольких комментариев
Если вам нужно очистить кэш сразу для нескольких комментариев, вы можете передать массив с их ID. В этом примере очищается кэш для комментариев с ID 12
, 27
и 85
.
// Очищаем кэш для нескольких комментариев.
clean_comment_cache( [ 12, 27, 85 ] );
Это особенно полезно, когда происходит массовое обновление комментариев, например, при модерации сразу нескольких записей.
Пример 3: Очистка кэша комментария после обновления
В этом примере показано, как можно использовать clean_comment_cache()
для удаления кэша комментария после его редактирования в админ-панели.
// Функция вызывается после обновления комментария.
function update_comment_and_clear_cache( $comment_id, $new_content ) {
// Обновляем содержание комментария.
wp_update_comment( [
'comment_ID' => $comment_id,
'comment_content' => $new_content,
]);
// Очищаем кэш для обновленного комментария.
clean_comment_cache( $comment_id );
}
// Применение функции для комментария с ID 77.
update_comment_and_clear_cache( 77, 'Обновленное содержание комментария.');
В этом примере после обновления комментария с новым содержанием кэш очищается, чтобы при следующем обращении был загружен обновленный комментарий.
Пример 4: Использование clean_comment_cache()
вместе с clean_post_cache()
Иногда требуется очистить кэш как для комментариев, так и для поста, к которому они относятся. В следующем примере очищается кэш как для комментария, так и для поста.
// Очистка кэша комментария и поста одновременно.
function clear_comment_and_post_cache( $comment_id, $post_id ) {
// Очищаем кэш комментария.
clean_comment_cache( $comment_id );
// Очищаем кэш поста, чтобы обновились все связанные данные.
clean_post_cache( $post_id );
}
// Очищаем кэш для комментария с ID 15 и поста с ID 120.
clear_comment_and_post_cache( 15, 120 );
Этот подход полезен, когда нужно обновить данные не только по комментарию, но и по всему посту, к которому комментарий привязан, особенно после существенных изменений.
Заключение
Функция clean_comment_cache()
играет ключевую роль в управлении актуальностью данных комментариев, удаляя кэшированные записи и предотвращая отображение устаревшей информации.