Make WordPress Core

Changeset 17653


Ignore:
Timestamp:
04/18/2011 09:27:13 PM (15 years ago)
Author:
ryan
Message:

Don't pollute orderby query var. Props scribu. fixes #16844

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/query.php

    r17610 r17653  
    22922292                // Order by
    22932293                if ( empty($q['orderby']) ) {
    2294                         $q['orderby'] = "$wpdb->posts.post_date " . $q['order'];
     2294                        $orderby = "$wpdb->posts.post_date " . $q['order'];
    22952295                } elseif ( 'none' == $q['orderby'] ) {
    2296                         $q['orderby'] = '';
     2296                        $orderby = '';
    22972297                } else {
    22982298                        // Used to filter values
     
    23052305                        $q['orderby'] = urldecode($q['orderby']);
    23062306                        $q['orderby'] = addslashes_gpc($q['orderby']);
    2307                         $orderby_array = explode(' ', $q['orderby']);
    2308                         $q['orderby'] = '';
    2309 
    2310                         foreach ( $orderby_array as $i => $orderby ) {
     2307
     2308                        $orderby_array = array();
     2309                        foreach ( explode( ' ', $q['orderby'] ) as $i => $orderby ) {
    23112310                                // Only allow certain values for safety
    23122311                                if ( ! in_array($orderby, $allowed_keys) )
     
    23362335                                }
    23372336
    2338                                 $q['orderby'] .= (($i == 0) ? '' : ',') . $orderby;
    2339                         }
    2340 
    2341                         // append ASC or DESC at the end
    2342                         if ( !empty($q['orderby']))
    2343                                 $q['orderby'] .= " {$q['order']}";
    2344 
    2345                         if ( empty($q['orderby']) )
    2346                                 $q['orderby'] = "$wpdb->posts.post_date ".$q['order'];
     2337                                $orderby_array[] = $orderby;
     2338                        }
     2339                        $orderby = implode( ',', $orderby_array );
     2340
     2341                        if ( empty( $orderby ) )
     2342                                $orderby = "$wpdb->posts.post_date ".$q['order'];
     2343                        else
     2344                                $orderby .= " {$q['order']}";
    23472345                }
    23482346
     
    25422540                                $where = "AND 0";
    25432541                }
    2544 
    2545                 $orderby = $q['orderby'];
    25462542
    25472543                $pieces = array( 'where', 'groupby', 'join', 'orderby', 'distinct', 'fields', 'limits' );
Note: See TracChangeset for help on using the changeset viewer.