WordPress.org

Make WordPress Core

Ticket #10393: 10393.patch

File 10393.patch, 2.0 KB (added by azaozz, 9 years ago)
  • wp-includes/category-template.php

     
    604604
    605605        if ( !isset( $args['topic_count_text_callback'] ) && isset( $args['single_text'] ) && isset( $args['multiple_text'] ) ) {
    606606                $body = 'return sprintf (
    607                         _n('.var_export($args['single_text'], true).', '.var_export($args['multiple_text'], true).', $count),
     607                        _n(' . var_export($args['single_text'], true) . ', ' . var_export($args['multiple_text'], true) . ', $count),
    608608                        number_format_i18n( $count ));';
    609609                $args['topic_count_text_callback'] = create_function('$count', $body);
    610610        }
    611611
    612612        $args = wp_parse_args( $args, $defaults );
    613 
    614613        extract( $args );
    615614
    616615        if ( empty( $tags ) )
    617616                return;
    618617
    619         // SQL cannot save you; this is a second (potentially different) sort on a subset of data.
    620         if ( 'name' == $orderby )
    621                 uasort( $tags, create_function('$a, $b', 'return strnatcasecmp($a->name, $b->name);') );
    622         else
    623                 uasort( $tags, create_function('$a, $b', 'return ($a->count > $b->count);') );
     618        if ( 'RAND' == $order ) {
     619                shuffle($tags);
     620        } else {
     621                // SQL cannot save you; this is a second (potentially different) sort on a subset of data.
     622                if ( 'name' == $orderby )
     623                        uasort( $tags, create_function('$a, $b', 'return strnatcasecmp($a->name, $b->name);') );
     624                else
     625                        uasort( $tags, create_function('$a, $b', 'return ($a->count > $b->count);') );
    624626
    625         $tags = apply_filters( 'tag_cloud_sort', $tags, $args );
    626 
    627         if ( 'DESC' == $order )
    628                 $tags = array_reverse( $tags, true );
    629         elseif ( 'RAND' == $order ) {
    630                 $keys = (array) array_rand( $tags, count( $tags ) );
    631                 $temp = array();
    632                 foreach ( $keys as $key )
    633                         $temp[$key] = $tags[$key];
    634 
    635                 $tags = $temp;
    636                 $temp = null;
    637                 unset( $temp );
     627                if ( 'DESC' == $order )
     628                        $tags = array_reverse( $tags, true );
    638629        }
    639630
     631        $tags = apply_filters( 'tag_cloud_sort', $tags, $args );
     632
    640633        if ( $number > 0 )
    641634                $tags = array_slice($tags, 0, $number);
    642635