Make WordPress Core

Ticket #36904: 36904.patch

File 36904.patch, 2.6 KB (added by spacedmonkey, 9 years ago)
  • src/wp-includes/query.php

     
    32803280                        $cgroupby = ( ! empty( $cgroupby ) ) ? 'GROUP BY ' . $cgroupby : '';
    32813281                        $corderby = ( ! empty( $corderby ) ) ? 'ORDER BY ' . $corderby : '';
    32823282
    3283                         $comments = (array) $wpdb->get_results("SELECT $distinct $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby $corderby $climits");
     3283                        $key          = md5( serialize( array( $cjoin, $cwhere, $cgroupby, $corderby, $climits ) ) );
     3284                        $last_changed = wp_cache_get( 'last_changed', 'comment' );
     3285                        if ( ! $last_changed ) {
     3286                                $last_changed = microtime();
     3287                                wp_cache_set( 'last_changed', $last_changed, 'comment' );
     3288                        }
     3289                        $cache_key   = "get_comment_feed_ids:$key:$last_changed";
     3290                        $comment_ids = wp_cache_get( $cache_key, 'comment' );
     3291                        if ( false === $comment_ids ) {
     3292                                $comment_ids = (array) $wpdb->get_results( "SELECT $distinct $wpdb->comments.comment_ID FROM $wpdb->comments $cjoin $cwhere $cgroupby $corderby $climits" );
     3293                                wp_cache_add( $cache_key, $comment_ids, 'comment' );
     3294                        }
     3295
    32843296                        // Convert to WP_Comment
    3285                         $this->comments = array_map( 'get_comment', $comments );
     3297                        $this->comments = array_map( 'get_comment', $comment_ids );
    32863298                        $this->comment_count = count($this->comments);
    32873299
    32883300                        $post_ids = array();
     
    36523664                        /** This filter is documented in wp-includes/query.php */
    36533665                        $climits = apply_filters_ref_array( 'comment_feed_limits', array( 'LIMIT ' . get_option('posts_per_rss'), &$this ) );
    36543666
    3655                         $comments_request = "SELECT $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby $corderby $climits";
    3656                         $comments = $wpdb->get_results($comments_request);
     3667                        $key          = md5( serialize( array( $cjoin, $cwhere, $cgroupby, $corderby, $climits ) ) );
     3668                        $last_changed = wp_cache_get( 'last_changed', 'comment' );
     3669                        if ( ! $last_changed ) {
     3670                                $last_changed = microtime();
     3671                                wp_cache_set( 'last_changed', $last_changed, 'comment' );
     3672                        }
     3673                        $cache_key   = "get_comment_feed_ids:$key:$last_changed";
     3674                        $comment_ids = wp_cache_get( $cache_key, 'comment' );
     3675                        if ( false === $comment_ids ) {
     3676                                $comment_ids = (array) $wpdb->get_results( "SELECT $distinct $wpdb->comments.comment_ID FROM $wpdb->comments $cjoin $cwhere $cgroupby $corderby $climits" );
     3677                                wp_cache_add( $cache_key, $comment_ids, 'comment' );
     3678                        }
     3679
    36573680                        // Convert to WP_Comment
    3658                         $this->comments = array_map( 'get_comment', $comments );
     3681                        $this->comments = array_map( 'get_comment', $comment_ids );
    36593682                        $this->comment_count = count($this->comments);
    36603683                }
    36613684