WordPress.org

Make WordPress Core

Ticket #21147: fields-found-rows.diff

File fields-found-rows.diff, 1.8 KB (added by wonderboymusic, 6 years ago)
  • wp-includes/query.php

     
    26132613                        $this->request = apply_filters_ref_array( 'posts_request', array( $this->request, &$this ) );
    26142614                }
    26152615
    2616                 if ( 'ids' == $q['fields'] ) {
    2617                         $this->posts = $wpdb->get_col($this->request);
     2616                if ( in_array( $q['fields'], array( 'ids', 'id=>parent' ) ) ) {
     2617                       
     2618                        if ( 'ids' == $q['fields'] )
     2619                                $this->posts = $wpdb->get_col( $this->request );
    26182620
     2621                        if ( 'id=>parent' == $q['fields'] ) {
     2622                                $this->posts = $wpdb->get_results( $this->request );
     2623                                $r = array();
     2624                                foreach ( $this->posts as $post )
     2625                                        $r[ $post->ID ] = $post->post_parent;
     2626
     2627                                $this->posts = $r;
     2628                        }
     2629                       
     2630                        $this->found_rows = $this->post_count = count( $this->posts );
    26192631                        return $this->posts;
    26202632                }
    2621 
    2622                 if ( 'id=>parent' == $q['fields'] ) {
    2623                         $this->posts = $wpdb->get_results($this->request);
    2624 
    2625                         $r = array();
    2626                         foreach ( $this->posts as $post )
    2627                                 $r[ $post->ID ] = $post->post_parent;
    2628 
    2629                         return $r;
    2630                 }
    2631 
     2633               
    26322634                $split_the_query = ( $old_request == $this->request && "$wpdb->posts.*" == $fields && !empty( $limits ) && $q['posts_per_page'] < 500 );
    26332635                $split_the_query = apply_filters( 'split_the_query', $split_the_query, $this );
    26342636
     
    27502752                if ( !$q['suppress_filters'] )
    27512753                        $this->posts = apply_filters_ref_array('the_posts', array( $this->posts, &$this ) );
    27522754
    2753                 $this->post_count = count($this->posts);
     2755                $this->post_count = count( $this->posts );
    27542756
    27552757                // Always sanitize
    27562758                foreach ( $this->posts as $i => $post ) {
     
    27702772        function set_found_posts( $q, $limits ) {
    27712773                global $wpdb;
    27722774
     2775                if ( empty( $limits ) )
     2776                        $this->found_rows = count( $this->posts );
     2777               
    27732778                if ( $q['no_found_rows'] || empty( $limits ) )
    27742779                        return;
    27752780