Ticket #16014: 16014.4.diff
File 16014.4.diff, 2.8 KB (added by , 13 years ago) |
---|
-
wp-admin/includes/class-wp-ms-users-list-table.php
31 31 'fields' => 'all_with_meta' 32 32 ); 33 33 34 $args['search'] = ltrim($args['search'], '*'); 35 34 36 if ( $role == 'super' ) { 35 37 $logins = implode( "', '", get_super_admins() ); 36 38 $args['include'] = $wpdb->get_col( "SELECT ID FROM $wpdb->users WHERE user_login IN ('$logins')" ); -
wp-admin/includes/class-wp-users-list-table.php
51 51 'fields' => 'all_with_meta' 52 52 ); 53 53 54 $args['search'] = '*' . $args['search'] . '*'; 55 54 56 if ( $this->is_site_users ) 55 57 $args['blog_id'] = $this->site_id; 56 58 -
wp-includes/user.php
465 465 466 466 $search = trim( $qv['search'] ); 467 467 if ( $search ) { 468 $wild = false; 469 if ( false !== strpos($search, '*') ) { 470 $wild = true; 468 $leading_wild = ( ltrim($search, '*') != $search ); 469 $trailing_wild = ( rtrim($search, '*') != $search ); 470 if ( $leading_wild && $trailing_wild ) 471 $wild = 'both'; 472 elseif ( $leading_wild ) 473 $wild = 'leading'; 474 elseif ( $trailing_wild ) 475 $wild = 'trailing'; 476 else 477 $wild = false; 478 if ( $wild ) 471 479 $search = trim($search, '*'); 472 } 480 473 481 if ( false !== strpos( $search, '@') ) 474 482 $search_columns = array('user_email'); 475 483 elseif ( is_numeric($search) ) … … 564 572 * 565 573 * @param string $string 566 574 * @param array $cols 567 * @param bool $wild Whether to allow trailing wildcard searches. Default is false. 575 * @param bool $wild Whether to allow wildcard searches. Default is false for Network Admin, true for 576 * single site. Single site allows leading and trailing wildcards, Network Admin only trailing. 568 577 * @return string 569 578 */ 570 579 function get_search_sql( $string, $cols, $wild = false ) { 571 580 $string = esc_sql( $string ); 572 581 573 582 $searches = array(); 574 $wild_char = ( $wild ) ? '%' : ''; 583 $leading_wild = ( 'leading' == $wild || 'both' == $wild ) ? '%' : ''; 584 $trailing_wild = ( 'trailing' == $wild || 'both' == $wild ) ? '%' : ''; 575 585 foreach ( $cols as $col ) { 576 586 if ( 'ID' == $col ) 577 587 $searches[] = "$col = '$string'"; 578 588 else 579 $searches[] = "$col LIKE ' " . like_escape($string) . "$wild_char'";589 $searches[] = "$col LIKE '$leading_wild" . like_escape($string) . "$trailing_wild'"; 580 590 } 581 591 582 592 return ' AND (' . implode(' OR ', $searches) . ')';