Make WordPress Core


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.