Make WordPress Core

Ticket #19903: 19903.2.diff

File 19903.2.diff, 3.1 KB (added by wonderboymusic, 6 years ago)
  • src/wp-includes/comment-functions.php

     
    363363        ", ARRAY_A);
    364364
    365365        $comment_count = array(
    366                 "approved"              => 0,
    367                 "awaiting_moderation"   => 0,
    368                 "spam"                  => 0,
    369                 "total_comments"        => 0
     366                'approved'            => 0,
     367                'awaiting_moderation' => 0,
     368                'spam'                => 0,
     369                'trash'               => 0,
     370                'post-trashed'        => 0,
     371                'total_comments'      => 0,
    370372        );
    371373
    372374        foreach ( $totals as $row ) {
    373375                switch ( $row['comment_approved'] ) {
     376                        case 'trash':
     377                                $comment_count['trash'] = $row['total'];
     378                                break;
     379                        case 'post-trashed':
     380                                $comment_count['post-trashed'] = $row['total'];
     381                                break;
    374382                        case 'spam':
    375383                                $comment_count['spam'] = $row['total'];
    376                                 $comment_count["total_comments"] += $row['total'];
     384                                $comment_count['total_comments'] += $row['total'];
    377385                                break;
    378386                        case '1':
    379387                                $comment_count['approved'] = $row['total'];
     
    921929 *
    922930 * @since 2.5.0
    923931 *
    924  * @global wpdb $wpdb
    925  *
    926932 * @param int $post_id Optional. Post ID.
    927933 * @return object|array Comment stats.
    928934 */
    929935function wp_count_comments( $post_id = 0 ) {
    930         global $wpdb;
    931 
    932936        $post_id = (int) $post_id;
    933937
    934938        /**
     
    939943         * @param array $count   An empty array.
    940944         * @param int   $post_id The post ID.
    941945         */
    942         $stats = apply_filters( 'wp_count_comments', array(), $post_id );
    943         if ( !empty($stats) )
    944                 return $stats;
     946        $filtered = apply_filters( 'wp_count_comments', array(), $post_id );
     947        if ( ! empty( $filtered ) ) {
     948                return $filtered;
     949        }
    945950
    946         $count = wp_cache_get("comments-{$post_id}", 'counts');
    947 
    948         if ( false !== $count )
     951        $count = wp_cache_get( "comments-{$post_id}", 'counts' );
     952        if ( false !== $count ) {
    949953                return $count;
    950 
    951         $where = '';
    952         if ( $post_id > 0 )
    953                 $where = $wpdb->prepare( "WHERE comment_post_ID = %d", $post_id );
    954 
    955         $count = $wpdb->get_results( "SELECT comment_approved, COUNT( * ) AS num_comments FROM {$wpdb->comments} {$where} GROUP BY comment_approved", ARRAY_A );
    956 
    957         $total = 0;
    958         $approved = array('0' => 'moderated', '1' => 'approved', 'spam' => 'spam', 'trash' => 'trash', 'post-trashed' => 'post-trashed');
    959         foreach ( (array) $count as $row ) {
    960                 // Don't count post-trashed toward totals
    961                 if ( 'post-trashed' != $row['comment_approved'] && 'trash' != $row['comment_approved'] )
    962                         $total += $row['num_comments'];
    963                 if ( isset( $approved[$row['comment_approved']] ) )
    964                         $stats[$approved[$row['comment_approved']]] = $row['num_comments'];
    965954        }
    966955
    967         $stats['total_comments'] = $total;
    968         foreach ( $approved as $key ) {
    969                 if ( empty($stats[$key]) )
    970                         $stats[$key] = 0;
    971         }
     956        $stats = get_comment_count( $post_id );
     957        $stats['moderated'] = $stats['awaiting_moderation'];
     958        unset( $stats['awaiting_moderation'] );
    972959
    973         $stats = (object) $stats;
    974         wp_cache_set("comments-{$post_id}", $stats, 'counts');
     960        $stats_object = (object) $stats;
     961        wp_cache_set( "comments-{$post_id}", $stats_object, 'counts' );
    975962
    976         return $stats;
     963        return $stats_object;
    977964}
    978965
    979966/**