wp_update_comment_count_now( int $post_id ): bool
Updates the comment count for the post.
Parameters
-
$post_id
int Required -
Post ID
Return
bool True on success, false if the post does not exist.
Source
File: wp-includes/comment.php
.
View all references
function wp_update_comment_count_now( $post_id ) {
global $wpdb;
$post_id = (int) $post_id;
if ( ! $post_id ) {
return false;
}
wp_cache_delete( 'comments-0', 'counts' );
wp_cache_delete( "comments-{$post_id}", 'counts' );
$post = get_post( $post_id );
if ( ! $post ) {
return false;
}
$old = (int) $post->comment_count;
/**
* Filters a post's comment count before it is updated in the database.
*
* @since 4.5.0
*
* @param int|null $new The new comment count. Default null.
* @param int $old The old comment count.
* @param int $post_id Post ID.
*/
$new = apply_filters( 'pre_wp_update_comment_count_now', null, $old, $post_id );
if ( is_null( $new ) ) {
$new = (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_approved = '1'", $post_id ) );
} else {
$new = (int) $new;
}
$wpdb->update( $wpdb->posts, array( 'comment_count' => $new ), array( 'ID' => $post_id ) );
clean_post_cache( $post );
/**
* Fires immediately after a post's comment count is updated in the database.
*
* @since 2.3.0
*
* @param int $post_id Post ID.
* @param int $new The new comment count.
* @param int $old The old comment count.
*/
do_action( 'wp_update_comment_count', $post_id, $new, $old );
/** This action is documented in wp-includes/post.php */
do_action( "edit_post_{$post->post_type}", $post_id, $post );
/** This action is documented in wp-includes/post.php */
do_action( 'edit_post', $post_id, $post );
return true;
}
Hooks
-
do_action( 'edit_post',
int $post_id ,WP_Post $post ) -
Fires once an existing post has been updated.
-
do_action( "edit_post_{$post->post_type}",
int $post_id ,WP_Post $post ) -
Fires once an existing post has been updated.
-
apply_filters( 'pre_wp_update_comment_count_now',
int|null $new ,int $old ,int $post_id ) -
Filters a post’s comment count before it is updated in the database.
-
do_action( 'wp_update_comment_count',
int $post_id ,int $new ,int $old ) -
Fires immediately after a post’s comment count is updated in the database.
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |