Ticket #27887: 27887.patch
File 27887.patch, 2.6 KB (added by , 10 years ago) |
---|
-
src/wp-includes/user.php
521 521 * @type array $search_columns Array of column names to be searched. Accepts 'ID', 'login', 522 522 * 'nicename', 'email', 'url'. Default empty array. 523 523 * @type string $orderby Field to sort the retrieved users by. Accepts 'ID', 'display_name', 524 * 'login', 'nicename', 'email', 'url', 'registered', 'post_count', or 525 * 'meta_value'. To use 'meta_value', `$meta_key` must be also be defined. 524 * 'login', 'nicename', 'email', 'url', 'registered', 'post_count', 525 * 'meta_value' or 'meta_value_num'. To use 'meta_value' or 526 * 'meta_value_num', `$meta_key` must be also be defined. 526 527 * Default 'user_login'. 527 528 * @type string $order Designates ascending or descending order of users. Accepts 'ASC', 528 529 * 'DESC'. Default 'ASC'. … … 631 632 $orderby = 'ID'; 632 633 } elseif ( 'meta_value' == $qv['orderby'] ) { 633 634 $orderby = "$wpdb->usermeta.meta_value"; 635 } elseif ( 'meta_value_num' == $qv['orderby'] ) { 636 $orderby = "$wpdb->usermeta.meta_value+0"; 634 637 } elseif ( 'include' === $qv['orderby'] && ! empty( $include ) ) { 635 638 // Sanitized earlier. 636 639 $include_sql = implode( ',', $include ); -
tests/phpunit/tests/user/query.php
186 186 } 187 187 188 188 /** 189 * @ticket 27887 190 */ 191 public function test_orderby_meta_value_num() { 192 $users = $this->factory->user->create_many( 3, array( 193 'role' => 'author' 194 ) ); 195 196 update_user_meta( $users[0], 'user_age', '101' ); 197 update_user_meta( $users[1], 'user_age', '20' ); 198 update_user_meta( $users[2], 'user_age', '25' ); 199 200 $q = new WP_User_Query( array( 201 'include' => $users, 202 'meta_key' => 'user_age', 203 'orderby' => 'meta_value_num', 204 'fields' => 'ids' 205 ) ); 206 207 $expected = array( $users[1], $users[2], $users[0] ); 208 209 $this->assertEquals( $expected, $q->get_results() ); 210 } 211 212 /** 189 213 * @ticket 21119 190 214 */ 191 215 function test_prepare_query() {