WordPress.org

Make WordPress Core

Ticket #17582: 17582.4.diff

File 17582.4.diff, 1.5 KB (added by scribu, 4 years ago)
  • wp-includes/user.php

     
    383383                                'search' => '', 
    384384                                'orderby' => 'login', 
    385385                                'order' => 'ASC', 
    386                                 'offset' => '', 'number' => '', 
     386                                'offset' => '', 
     387                                'number' => '', 
    387388                                'count_total' => true, 
    388389                                'fields' => 'all', 
    389390                                'who' => '' 
     
    418419                        $this->query_fields = "$wpdb->users.ID"; 
    419420                } 
    420421 
     422                if ( $this->query_vars['count_total'] ) { 
     423                        $this->query_fields = 'SQL_CALC_FOUND_ROWS ' . $this->query_fields; 
     424                } 
     425 
    421426                $this->query_from = "FROM $wpdb->users"; 
    422427                $this->query_where = "WHERE 1=1"; 
    423428 
     
    517522                        $clauses = $meta_query->get_sql( 'user', $wpdb->users, 'ID', $this ); 
    518523                        $this->query_from .= $clauses['join']; 
    519524                        $this->query_where .= $clauses['where']; 
     525 
     526                        if ( 'OR' == $meta_query->relation ) { 
     527                                $this->query_fields = 'DISTINCT ' . $this->query_fields; 
     528                        } 
    520529                } 
    521530 
    522531                if ( !empty( $qv['include'] ) ) { 
     
    545554                        $this->results = $wpdb->get_col("SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit"); 
    546555                } 
    547556 
    548                 if ( $this->query_vars['count_total'] ) 
    549                         $this->total_users = $wpdb->get_var("SELECT COUNT(*) $this->query_from $this->query_where"); 
     557                if ( $this->query_vars['count_total'] ) { 
     558                        $this->total_users = $wpdb->get_var( apply_filters( 'found_users_query', 'SELECT FOUND_ROWS()' ) ); 
     559                } 
    550560 
    551561                if ( !$this->results ) 
    552562                        return;