WP_User::get_data_by() WordPress Method
The WP_User::get_data_by() method is used to retrieve user data by a given field. The field can be either a user ID, a user login, or a user email address. This method is useful for getting user data when you only have a limited amount of information about the user.
WP_User::get_data_by( string $field, string|int $value ) #
Returns only the main user fields.
Parameters
- $field
(string)(Required)The field to query against: 'id', 'ID', 'slug', 'email' or 'login'.
- $value
(string|int)(Required)The field value.
Return
(object|false) Raw user object.
Source
File: wp-includes/class-wp-user.php
public static function get_data_by( $field, $value ) { global $wpdb; // 'ID' is an alias of 'id'. if ( 'ID' === $field ) { $field = 'id'; } if ( 'id' === $field ) { // Make sure the value is numeric to avoid casting objects, for example, // to int 1. if ( ! is_numeric( $value ) ) { return false; } $value = (int) $value; if ( $value < 1 ) { return false; } } else { $value = trim( $value ); } if ( ! $value ) { return false; } switch ( $field ) { case 'id': $user_id = $value; $db_field = 'ID'; break; case 'slug': $user_id = wp_cache_get( $value, 'userslugs' ); $db_field = 'user_nicename'; break; case 'email': $user_id = wp_cache_get( $value, 'useremail' ); $db_field = 'user_email'; break; case 'login': $value = sanitize_user( $value ); $user_id = wp_cache_get( $value, 'userlogins' ); $db_field = 'user_login'; break; default: return false; } if ( false !== $user_id ) { $user = wp_cache_get( $user_id, 'users' ); if ( $user ) { return $user; } } $user = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE $db_field = %s LIMIT 1", $value ) ); if ( ! $user ) { return false; } update_user_caches( $user ); return $user; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
4.4.0 | Added 'ID' as an alias of 'id' for the $field parameter. |
3.3.0 | Introduced. |