A WordPress-centric search engine for devs and theme authors

wp_update_comment_count › WordPress Function

wp_update_comment_count ( $post_id, $do_deferred = false )
Parameters: (2)
  • (int|null) $post_id Post ID.
    Required: Yes
  • (bool) $do_deferred Optional. Whether to process previously deferred post comment counts. Default false.
    Required: No
    Default: false
  • (bool|void) True on success, false on failure or if post with ID does not exist.
Defined at:

Updates the comment count for post(s).

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.


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 );