WordPress.org

Make WordPress Core

Ticket #4617: 4617b.diff

File 4617b.diff, 1.2 KB (added by Nazgul, 6 years ago)
  • wp-includes/query.php

     
    11231123                        $q['orderby'] = 'post_date '.$q['order']; 
    11241124                } else { 
    11251125                        // Used to filter values 
    1126                         $allowed_keys = array('author', 'date', 'category', 'title', 'modified', 'menu_order', 'parent', 'ID'); 
     1126                        $allowed_keys = array('author', 'date', 'category', 'title', 'modified', 'menu_order', 'parent', 'ID', 'rand'); 
    11271127                        $q['orderby'] = urldecode($q['orderby']); 
    11281128                        $q['orderby'] = addslashes_gpc($q['orderby']); 
    11291129                        $orderby_array = explode(' ',$q['orderby']); 
     
    11331133                        for ($i = 0; $i < count($orderby_array); $i++) { 
    11341134                                // Only allow certain values for safety 
    11351135                                $orderby = $orderby_array[$i]; 
    1136                                 if ( !('menu_order' == $orderby || 'ID' == $orderby )) 
     1136                                if ( !('menu_order' == $orderby || 'ID' == $orderby || 'rand' == $orderby ) ) 
    11371137                                        $orderby = 'post_' . $orderby; 
     1138                                if ( 'rand' == $orderby )  
     1139                                        $orderby = 'RAND()';  
    11381140                                if ( in_array($orderby_array[$i], $allowed_keys) ) 
    11391141                                        $q['orderby'] .= (($i == 0) ? '' : ',') . $orderby; 
    11401142                        }