WP_User_Query::query() WordPress Method
The WP_User_Query::query() method is used to query the WordPress user database. It accepts an array of arguments, which can be used to specify the desired search criteria. The results of the query can be accessed via the WP_User_Query::get_results() method.
WP_User_Query::query() #
Executes the query, with the current variables.
Source
File: wp-includes/class-wp-user-query.php
779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 | public function query() { global $wpdb ; $qv =& $this ->query_vars; /** * Filters the users array before the query takes place. * * Return a non-null value to bypass WordPress' default user queries. * * Filtering functions that require pagination information are encouraged to set * the `total_users` property of the WP_User_Query object, passed to the filter * by reference. If WP_User_Query does not perform a database query, it will not * have enough information to generate these values itself. * * @since 5.1.0 * * @param array|null $results Return an array of user data to short-circuit WP's user query * or null to allow WP to run its normal queries. * @param WP_User_Query $query The WP_User_Query instance (passed by reference). */ $this ->results = apply_filters_ref_array( 'users_pre_query' , array ( null, & $this ) ); if ( null === $this ->results ) { $this ->request = " SELECT { $this ->query_fields} { $this ->query_from} { $this ->query_where} { $this ->query_orderby} { $this ->query_limit} "; if ( is_array ( $qv [ 'fields' ] ) || 'all' === $qv [ 'fields' ] ) { $this ->results = $wpdb ->get_results( $this ->request ); } else { $this ->results = $wpdb ->get_col( $this ->request ); } if ( isset( $qv [ 'count_total' ] ) && $qv [ 'count_total' ] ) { /** * Filters SELECT FOUND_ROWS() query for the current WP_User_Query instance. * * @since 3.2.0 * @since 5.1.0 Added the `$this` parameter. * * @global wpdb $wpdb WordPress database abstraction object. * * @param string $sql The SELECT FOUND_ROWS() query for the current WP_User_Query. * @param WP_User_Query $query The current WP_User_Query instance. */ $found_users_query = apply_filters( 'found_users_query' , 'SELECT FOUND_ROWS()' , $this ); $this ->total_users = (int) $wpdb ->get_var( $found_users_query ); } } if ( ! $this ->results ) { return ; } if ( is_array ( $qv [ 'fields' ] ) && isset( $this ->results[0]->ID ) ) { foreach ( $this ->results as $result ) { $result ->id = $result ->ID; } } elseif ( 'all_with_meta' === $qv [ 'fields' ] ) { cache_users( $this ->results ); $r = array (); foreach ( $this ->results as $userid ) { $r [ $userid ] = new WP_User( $userid , '' , $qv [ 'blog_id' ] ); } $this ->results = $r ; } elseif ( 'all' === $qv [ 'fields' ] ) { foreach ( $this ->results as $key => $user ) { $this ->results[ $key ] = new WP_User( $user , '' , $qv [ 'blog_id' ] ); } } } |
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
3.1.0 | Introduced. |