Introduce WP_Object_Query. See #15032

git-svn-id: http://svn.automattic.com/wordpress/trunk@15715 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
scribu
2010-10-04 18:57:13 +00:00
parent 1190c4094b
commit f558d12bf0
4 changed files with 107 additions and 95 deletions

View File

@@ -330,7 +330,7 @@ function delete_user_option( $user_id, $option_name, $global = false ) {
*
* @since 3.1.0
*/
class WP_User_Query {
class WP_User_Query extends WP_Object_Query {
/**
* List of found user ids
@@ -444,11 +444,11 @@ class WP_User_Query {
$this->query_where .= _wp_search_sql( $search, array('user_login', 'user_nicename', 'user_email', 'user_url', 'display_name') );
}
$this->parse_meta_query( $qv );
$role = trim( $qv['role'] );
$blog_id = absint( $qv['blog_id'] );
$meta_queries = array();
if ( $blog_id ) {
$cap_meta_query = array();
$cap_meta_query['key'] = $wpdb->get_blog_prefix( $blog_id ) . 'capabilities';
@@ -458,20 +458,10 @@ class WP_User_Query {
$cap_meta_query['compare'] = 'like';
}
$meta_queries[] = $cap_meta_query;
$this->meta_query[] = $cap_meta_query;
}
$meta_query = array();
foreach ( array( 'key', 'value', 'compare' ) as $key ) {
if ( !empty( $qv[ "meta_$key" ] ) )
$meta_query[ $key ] = $qv[ "meta_$key" ];
}
if ( !empty( $meta_query ) ) {
$meta_queries[] = $meta_query;
}
list( $meta_join, $meta_where ) = _wp_meta_sql( $meta_queries, $wpdb->users, 'ID', $wpdb->usermeta, 'user_id' );
list( $meta_join, $meta_where ) = $this->get_meta_sql( $wpdb->users, 'ID', $wpdb->usermeta, 'user_id' );
$this->query_from .= $meta_join;
$this->query_where .= $meta_where;