WordPress.org

Make WordPress Core

Ticket #14777: 14777.diff

File 14777.diff, 2.2 KB (added by scribu, 5 years ago)
  • wp-includes/query.php

     
    11851185                        , 'preview' 
    11861186                        , 's' 
    11871187                        , 'sentence' 
     1188                        , 'fields' 
    11881189                ); 
    11891190 
    11901191                foreach ( $keys as $key ) { 
    1191                         if ( !isset($array[$key])) 
     1192                        if ( !isset($array[$key]) ) 
    11921193                                $array[$key] = ''; 
    11931194                } 
    11941195 
     
    11961197                        'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and'); 
    11971198 
    11981199                foreach ( $array_keys as $key ) { 
    1199                         if ( !isset($array[$key])) 
     1200                        if ( !isset($array[$key]) ) 
    12001201                                $array[$key] = array(); 
    12011202                } 
    12021203                return $array; 
     
    16481649                $join = ''; 
    16491650                $search = ''; 
    16501651                $groupby = ''; 
    1651                 $fields = "$wpdb->posts.*"; 
     1652                $fields = ''; 
    16521653                $post_status_join = false; 
    16531654                $page = 1; 
    16541655 
     
    17291730                else 
    17301731                        $q['no_found_rows'] = false; 
    17311732 
     1733                switch ( $q['fields'] ) { 
     1734                        case 'ids': 
     1735                                $fields = "$wpdb->posts.ID"; 
     1736                                break; 
     1737                        case 'id=>parent': 
     1738                                $fields = "$wpdb->posts.ID, $wpdb->posts.post_parent"; 
     1739                                break; 
     1740                        default: 
     1741                                $fields = "$wpdb->posts.*"; 
     1742                } 
     1743 
    17321744                // If a month is specified in the querystring, load that month 
    17331745                if ( $q['m'] ) { 
    17341746                        $q['m'] = '' . preg_replace('|[^0-9]|', '', $q['m']); 
     
    22722284                        $groupby = 'GROUP BY ' . $groupby; 
    22732285                if ( !empty( $orderby ) ) 
    22742286                        $orderby = 'ORDER BY ' . $orderby; 
     2287 
    22752288                $found_rows = ''; 
    22762289                if ( !$q['no_found_rows'] && !empty($limits) ) 
    22772290                        $found_rows = 'SQL_CALC_FOUND_ROWS'; 
     
    22802293                if ( !$q['suppress_filters'] ) 
    22812294                        $this->request = apply_filters_ref_array('posts_request', array( $this->request, &$this ) ); 
    22822295 
     2296                if ( 'ids' == $q['fields'] ) { 
     2297                        $this->posts = $wpdb->get_col($this->request); 
     2298 
     2299                        return $this->posts; 
     2300                } 
     2301 
     2302                if ( 'id=>parent' == $q['fields'] ) { 
     2303                        $this->posts = $wpdb->get_results($this->request); 
     2304 
     2305                        $r = array(); 
     2306                        foreach ( $this->posts as $post ) 
     2307                                $r[ $post->ID ] = $post->post_parent; 
     2308 
     2309                        return $r; 
     2310                } 
     2311 
    22832312                $this->posts = $wpdb->get_results($this->request); 
     2313 
    22842314                // Raw results filter.  Prior to status checks. 
    22852315                if ( !$q['suppress_filters'] ) 
    22862316                        $this->posts = apply_filters_ref_array('posts_results', array( $this->posts, &$this ) );