From f03b72167d0890b4be0edade74c859213d86eb6f Mon Sep 17 00:00:00 2001 From: Brian Miyaji Date: Sun, 21 Jun 2015 00:29:43 +1000 Subject: [PATCH] Add random sorting to player gallery widget --- includes/sp-formatting-functions.php | 11 +++++++++++ includes/widgets/class-sp-widget-player-gallery.php | 3 +++ templates/player-gallery.php | 2 ++ 3 files changed, 16 insertions(+) diff --git a/includes/sp-formatting-functions.php b/includes/sp-formatting-functions.php index a75ddfee..36ae7ffb 100644 --- a/includes/sp-formatting-functions.php +++ b/includes/sp-formatting-functions.php @@ -85,6 +85,17 @@ function sp_filter_non_empty( $var = '' ) { return strlen( $var ) > 0; } +/** + * Sort array randomly and maintain index association. + * + * @access public + * @param array $array + * @return bool + */ +function sp_sort_random() { + return rand() > rand(); +} + /** * let_to_num function. * diff --git a/includes/widgets/class-sp-widget-player-gallery.php b/includes/widgets/class-sp-widget-player-gallery.php index a19f87cb..70722684 100644 --- a/includes/widgets/class-sp-widget-player-gallery.php +++ b/includes/widgets/class-sp-widget-player-gallery.php @@ -101,6 +101,9 @@ class SP_Widget_Player_Gallery extends WP_Widget { 'name' => __( 'Name', 'sportspress' ), 'eventsplayed' => __( 'Played', 'sportspress' ) ), + 'append_options' => array( + 'rand' => __( 'Random', 'sportspress' ), + ), 'post_type' => 'sp_performance', 'name' => $this->get_field_name('orderby'), 'id' => $this->get_field_id('orderby'), diff --git a/templates/player-gallery.php b/templates/player-gallery.php index f579663a..38d938ea 100644 --- a/templates/player-gallery.php +++ b/templates/player-gallery.php @@ -59,6 +59,8 @@ endif; if ( $orderby == 'default' ): $orderby = $list->orderby; $order = $list->order; +elseif ( $orderby == 'rand' ): + uasort( $data, 'sp_sort_random' ); else: $list->priorities = array( array(