wp_update_comment_count()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
wp_update_comment_count( int|null $post_id, bool $do_deferred = false ): bool|void
Описание
Когда $do_deferred равно false (по умолчанию) и для комментариев включён отложенный режим, post_id добавляется в очередь, которая будет обновлена позже и обновляется только один раз для каждого идентификатора записи.
Если отложенный режим для комментариев не включён, запись будет обновлена. Когда $do_deferred установлено в true, все ранее отложенные идентификаторы записей будут обновлены вместе с текущим $post_id.
См. alsowp_update_comment_count_now(): о том, что может привести к возврату значения false
Оригинал (английский)
When $do_deferred is false (is by default) and the comments have been set to be deferred, the post_id will be added to a queue, which will be updated at a later date and only updated once per post ID.
If the comments have not be set up to be deferred, then the post will be updated. When $do_deferred is set to true, then all previous deferred post IDs will be updated along with the current $post_id.
- wp_update_comment_count_now(): For what could cause a false return value
Параметры
$post_id
int|null
обязательный
$do_deferred
bool
необязательный
= false
Возвращаемое значение
bool|void
Исходный код
wp-includes/comment.php:2812
function wp_update_comment_count( $post_id, $do_deferred = false ) {
static $_deferred = array();
if ( empty( $post_id ) && ! $do_deferred ) {
return false;
}
if ( $do_deferred ) {
$_deferred = array_unique( $_deferred );
foreach ( $_deferred as $i => $_post_id ) {
wp_update_comment_count_now( $_post_id );
unset( $_deferred[ $i ] );
/** @todo Move this outside of the foreach and reset $_deferred to an array instead */
}
}
if ( wp_defer_comment_counting() ) {
$_deferred[] = $post_id;
return true;
} elseif ( $post_id ) {
return wp_update_comment_count_now( $post_id );
}
}
История изменений
| Версия | Описание |
|---|---|
| 2.1.0 | Introduced. |

