Ticket #16014: 16014.3.diff
File 16014.3.diff, 1.7 KB (added by , 14 years ago) |
---|
-
wp-includes/user.php
465 465 466 466 $search = trim( $qv['search'] ); 467 467 if ( $search ) { 468 $wild = false; 469 if ( false !== strpos($search, '*') ) { 468 if ( is_network_admin() ) 469 $wild = ( false !== strpos($search, '*') ); 470 else 470 471 $wild = true; 471 $search = trim($search, '*'); 472 } 472 $search = trim($search, '*'); 473 473 if ( false !== strpos( $search, '@') ) 474 474 $search_columns = array('user_email'); 475 475 elseif ( is_numeric($search) ) … … 564 564 * 565 565 * @param string $string 566 566 * @param array $cols 567 * @param bool $wild Whether to allow trailing wildcard searches. Default is false. 567 * @param bool $wild Whether to allow wildcard searches. Default is false for Network Admin, true for 568 * single site. Single site allows leading and trailing wildcards, Network Admin only trailing. 568 569 * @return string 569 570 */ 570 function get_search_sql( $string, $cols, $wild = false) {571 function get_search_sql( $string, $cols, $wild = null ) { 571 572 $string = esc_sql( $string ); 572 573 573 574 $searches = array(); 574 $wild_char = ( $wild ) ? '%' : ''; 575 if ( null === $wild ) 576 $wild = ! is_network_admin(); 577 578 $trailing_wild = ( $wild ) ? '%' : ''; 579 $leading_wild = $wild && ! is_network_admin() ? '%' : ''; 575 580 foreach ( $cols as $col ) { 576 581 if ( 'ID' == $col ) 577 582 $searches[] = "$col = '$string'"; 578 583 else 579 $searches[] = "$col LIKE ' " . like_escape($string) . "$wild_char'";584 $searches[] = "$col LIKE '$leading_wild" . like_escape($string) . "$trailing_wild'"; 580 585 } 581 586 582 587 return ' AND (' . implode(' OR ', $searches) . ')';