WordPress.org

Make WordPress Core

Ticket #14777: 14777.diff

File 14777.diff, 2.2 KB (added by scribu, 8 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 ) );