mirror of
https://github.com/WordPress/WordPress.git
synced 2025-03-10 13:49:12 +01:00
Use get_users() in wp_dropdown_users(). See #14572
git-svn-id: http://svn.automattic.com/wordpress/trunk@15574 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
c60d3205e6
commit
7d0891ad85
@ -2979,6 +2979,24 @@ function wp_parse_id_list( $list ) {
|
||||
return array_unique(array_map('absint', $list));
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract a slice of an array, given a list of keys
|
||||
*
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @param array $array The original array
|
||||
* @param array $keys The list of keys
|
||||
* @return array The array slice
|
||||
*/
|
||||
function wp_array_slice_assoc( $array, $keys ) {
|
||||
$slice = array();
|
||||
foreach ( $keys as $key )
|
||||
if ( isset( $array[ $key ] ) )
|
||||
$slice[ $key ] = $array[ $key ];
|
||||
|
||||
return $slice;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters a list of objects, based on a set of key => value arguments
|
||||
*
|
||||
|
@ -461,11 +461,7 @@ class WP_User_Query {
|
||||
$meta_queries[] = $cap_meta_query;
|
||||
}
|
||||
|
||||
$meta_query = array();
|
||||
foreach ( array( 'meta_key', 'meta_value', 'meta_compare' ) as $key )
|
||||
if ( isset( $qv[ $key ] ) )
|
||||
$meta_query[ $key ] = $qv[ $key ];
|
||||
$meta_queries[] = $meta_query;
|
||||
$meta_queries[] = wp_array_slice_assoc( $qv, array( 'meta_key', 'meta_value', 'meta_compare' ) );
|
||||
|
||||
$meta_query_sql = _wp_meta_sql( $meta_queries, 'user_id', $wpdb->usermeta );
|
||||
|
||||
@ -831,29 +827,7 @@ function wp_dropdown_users( $args = '' ) {
|
||||
$r = wp_parse_args( $args, $defaults );
|
||||
extract( $r, EXTR_SKIP );
|
||||
|
||||
$blog_prefix = $wpdb->get_blog_prefix( $blog_id );
|
||||
$query = "SELECT {$wpdb->users}.* FROM $wpdb->users, $wpdb->usermeta WHERE {$wpdb->users}.ID = {$wpdb->usermeta}.user_id AND meta_key = '{$blog_prefix}capabilities'";
|
||||
|
||||
$query_where = array();
|
||||
|
||||
if ( is_array($include) )
|
||||
$include = join(',', $include);
|
||||
$include = preg_replace('/[^0-9,]/', '', $include); // (int)
|
||||
if ( $include )
|
||||
$query_where[] = "ID IN ($include)";
|
||||
|
||||
if ( is_array($exclude) )
|
||||
$exclude = join(',', $exclude);
|
||||
$exclude = preg_replace('/[^0-9,]/', '', $exclude); // (int)
|
||||
if ( $exclude )
|
||||
$query_where[] = "ID NOT IN ($exclude)";
|
||||
|
||||
if ( $query_where )
|
||||
$query .= " AND " . join(' AND', $query_where);
|
||||
|
||||
$query .= " ORDER BY $orderby $order";
|
||||
|
||||
$users = $wpdb->get_results( $query );
|
||||
$users = get_users( wp_array_slice_assoc( $args, array( 'blog_id', 'include', 'exclude', 'orderby', 'order' ) ) );
|
||||
|
||||
$output = '';
|
||||
if ( !empty($users) ) {
|
||||
|
Loading…
Reference in New Issue
Block a user