Make WordPress Core


Ignore:
Timestamp:
01/15/2016 01:41:35 PM (11 years ago)
Author:
swissspidy
Message:

Comments: Add a new pre_wp_update_comment_count_now filter.

This allows filtering a post's comment count before it is queried and updated in the database.

Props peterwilsoncc for initial patch.
Fixes #35060.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/comment.php

    r36272 r36318  
    20952095
    20962096        $old = (int) $post->comment_count;
    2097         $new = (int) $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_approved = '1'", $post_id) );
     2097
     2098        /**
     2099         * Filters a post's comment count before it is updated in the database.
     2100         *
     2101         * @since 4.5.0
     2102         *
     2103         * @param int $new     The new comment count. Default null.
     2104         * @param int $old     The old comment count.
     2105         * @param int $post_id Post ID.
     2106         */
     2107        $new = apply_filters( 'pre_wp_update_comment_count_now', null, $old, $post_id );
     2108
     2109        if ( is_null( $new ) ) {
     2110                $new = (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_approved = '1'", $post_id ) );
     2111        } else {
     2112                $new = (int) $new;
     2113        }
     2114
    20982115        $wpdb->update( $wpdb->posts, array('comment_count' => $new), array('ID' => $post_id) );
    20992116
Note: See TracChangeset for help on using the changeset viewer.