Changeset 38001
- Timestamp:
- 07/07/2016 02:26:21 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/class-wp-comment-query.php
r37873 r38001 395 395 wp_cache_set( 'last_changed', $last_changed, 'comment' ); 396 396 } 397 $cache_key = "get_comment_ids:$key:$last_changed"; 398 399 $c omment_ids= wp_cache_get( $cache_key, 'comment' );400 if ( false === $c omment_ids) {397 398 $cache_key = "get_comments:$key:$last_changed"; 399 $cache_value = wp_cache_get( $cache_key, 'comment' ); 400 if ( false === $cache_value ) { 401 401 $comment_ids = $this->get_comment_ids(); 402 wp_cache_add( $cache_key, $comment_ids, 'comment' ); 402 if ( $comment_ids ) { 403 $this->set_found_comments(); 404 } 405 406 $cache_value = array( 407 'comment_ids' => $comment_ids, 408 'found_comments' => $this->found_comments, 409 ); 410 wp_cache_add( $cache_key, $cache_value, 'comment' ); 411 } else { 412 $comment_ids = $cache_value['comment_ids']; 413 $this->found_comments = $cache_value['found_comments']; 414 } 415 416 if ( $this->found_comments && $this->query_vars['number'] ) { 417 $this->max_num_pages = ceil( $this->found_comments / $this->query_vars['number'] ); 403 418 } 404 419 … … 410 425 411 426 $comment_ids = array_map( 'intval', $comment_ids ); 412 413 if ( $comment_ids && $this->query_vars['number'] && ! $this->query_vars['no_found_rows'] ) {414 /**415 * Filters the query used to retrieve found comment count.416 *417 * @since 4.4.0418 *419 * @param string $found_comments_query SQL query. Default 'SELECT FOUND_ROWS()'.420 * @param WP_Comment_Query $comment_query The `WP_Comment_Query` instance.421 */422 $found_comments_query = apply_filters( 'found_comments_query', 'SELECT FOUND_ROWS()', $this );423 $this->found_comments = (int) $wpdb->get_var( $found_comments_query );424 425 $this->max_num_pages = ceil( $this->found_comments / $this->query_vars['number'] );426 }427 427 428 428 if ( 'ids' == $this->query_vars['fields'] ) { … … 898 898 $comment_ids = $wpdb->get_col( $this->request ); 899 899 return array_map( 'intval', $comment_ids ); 900 } 901 } 902 903 /** 904 * Populates found_comments and max_num_pages properties for the current query if the limit clause was used. 905 * 906 * @since 4.6.0 907 * @access private 908 * 909 * @global wpdb $wpdb WordPress database abstraction object. 910 */ 911 private function set_found_comments() { 912 global $wpdb; 913 914 if ( $this->query_vars['number'] && ! $this->query_vars['no_found_rows'] ) { 915 /** 916 * Filters the query used to retrieve found comment count. 917 * 918 * @since 4.4.0 919 * 920 * @param string $found_comments_query SQL query. Default 'SELECT FOUND_ROWS()'. 921 * @param WP_Comment_Query $comment_query The `WP_Comment_Query` instance. 922 */ 923 $found_comments_query = apply_filters( 'found_comments_query', 'SELECT FOUND_ROWS()', $this ); 924 925 $this->found_comments = (int) $wpdb->get_var( $found_comments_query ); 900 926 } 901 927 } -
trunk/tests/phpunit/tests/comment/query.php
r37954 r38001 2153 2153 2154 2154 /** 2155 * @ticket 37184 2156 */ 2157 public function test_found_rows_should_be_fetched_from_the_cache() { 2158 $comments = self::factory()->comment->create_many( 3, array( 'comment_post_ID' => self::$post_id ) ); 2159 2160 // Prime cache. 2161 new WP_Comment_Query( array( 2162 'post_id' => self::$post_id, 2163 'number' => 2, 2164 'no_found_rows' => false, 2165 ) ); 2166 2167 $q = new WP_Comment_Query( array( 2168 'post_id' => self::$post_id, 2169 'number' => 2, 2170 'no_found_rows' => false, 2171 ) ); 2172 2173 $this->assertEquals( 3, $q->found_comments ); 2174 $this->assertEquals( 2, $q->max_num_pages ); 2175 } 2176 2177 /** 2155 2178 * @ticket 8071 2156 2179 */
Note: See TracChangeset
for help on using the changeset viewer.