WordPress.org

Make WordPress Core

Ticket #43680: 43680.3.diff

File 43680.3.diff, 1.6 KB (added by SergeyBiryukov, 3 years ago)
  • src/wp-includes/class-wp-user-query.php

     
    617617                        $this->total_users = (int) $wpdb->get_var( $found_users_query );
    618618                }
    619619
    620                 if ( ! $this->results ) {
    621                         return;
     620                if ( $this->results ) {
     621                        if ( 'all_with_meta' == $qv['fields'] ) {
     622                                $r = array();
     623                                foreach ( $this->results as $userid ) {
     624                                        $r[ $userid ] = new WP_User( $userid, '', $qv['blog_id'] );
     625                                }
     626                                $this->results = $r;
     627                        } elseif ( 'all' == $qv['fields'] ) {
     628                                foreach ( $this->results as $key => $user ) {
     629                                        $this->results[ $key ] = new WP_User( $user, '', $qv['blog_id'] );
     630                                }
     631                        }
    622632                }
    623633
    624                 if ( 'all_with_meta' == $qv['fields'] ) {
    625                         cache_users( $this->results );
     634                /**
     635                 * Filters the raw user results array.
     636                 *
     637                 * @since 4.9.9
     638                 *
     639                 * @param array         $users Array of user objects or user fields.
     640                 * @param WP_User_Query $this  The WP_User_Query instance (passed by reference).
     641                 */
     642                $this->results = apply_filters_ref_array( 'users_results', array( $this->results, &$this ) );
    626643
    627                         $r = array();
    628                         foreach ( $this->results as $userid ) {
    629                                 $r[ $userid ] = new WP_User( $userid, '', $qv['blog_id'] );
    630                         }
    631 
    632                         $this->results = $r;
    633                 } elseif ( 'all' == $qv['fields'] ) {
    634                         foreach ( $this->results as $key => $user ) {
    635                                 $this->results[ $key ] = new WP_User( $user, '', $qv['blog_id'] );
    636                         }
     644                if ( $this->results && 'all_with_meta' == $qv['fields'] ) {
     645                        cache_users( array_keys( $this->results ) );
    637646                }
    638647        }
    639648