get_user_by( string $field, int|string $value ): WP_User|false

Retrieves user info by a given field.

Parameters

$fieldstringrequired
The field to retrieve the user with. id | ID | slug | email | login.
$valueint|stringrequired
A value for $field. A user ID, slug, email address, or login name.

Return

WP_User|false WP_User object on success, false on failure.

Source

function get_user_by( $field, $value ) {
	$userdata = WP_User::get_data_by( $field, $value );

	if ( ! $userdata ) {
		return false;
	}

	$user = new WP_User();
	$user->init( $userdata );

	return $user;
}

Changelog

VersionDescription
4.4.0Added 'ID' as an alias of 'id' for the $field parameter.
2.8.0Introduced.

User Contributed Notes

  1. Skip to note 8 content

    Sample response of

    $author_obj = get_user_by('id', 1);


    object(WP_User)#96 (7) {
    ["data"]=>
    object(stdClass)#95 (10) {
    ["ID"]=>
    string(1) "1"
    ["user_login"]=>
    string(10) "superadmin"
    ["user_pass"]=>
    string(34) "$P$Bx0Jgq6/Qw/o3A5fXcVKg4jxQr2PAB1"
    ["user_nicename"]=>
    string(10) "superadmin"
    ["user_email"]=>
    string(16) "user@example.com"
    ["user_url"]=>
    string(0) ""
    ["user_registered"]=>
    string(19) "2014-02-21 21:31:40"
    ["user_activation_key"]=>
    string(0) ""
    ["user_status"]=>
    string(1) "0"
    ["display_name"]=>
    string(10) "superadmin"
    }
    ["ID"]=>
    int(1)
    ["caps"]=>
    array(1) {
    ["administrator"]=>
    bool(true)
    }
    ["cap_key"]=>
    string(25) "wp_capabilities"
    ["roles"]=>
    array(1) {
    [0]=>
    string(13) "administrator"
    }
    ["allcaps"]=>
    array(63) {
    ["switch_themes"]=>
    bool(true)
    ["edit_themes"]=>
    bool(true)
    ["activate_plugins"]=>
    bool(true)
    ["edit_plugins"]=>
    bool(true)
    ["edit_users"]=>
    bool(true)
    ["edit_files"]=>
    bool(true)
    ["manage_options"]=>
    bool(true)
    ["moderate_comments"]=>
    bool(true)
    ["manage_categories"]=>
    bool(true)
    ["manage_links"]=>
    bool(true)
    ["upload_files"]=>
    bool(true)
    ["import"]=>
    bool(true)
    ["unfiltered_html"]=>
    bool(true)
    ["edit_posts"]=>
    bool(true)
    ["edit_others_posts"]=>
    bool(true)
    ["edit_published_posts"]=>
    bool(true)
    ["publish_posts"]=>
    bool(true)
    ["edit_pages"]=>
    bool(true)
    ["read"]=>
    bool(true)
    ["level_10"]=>
    bool(true)
    ["level_9"]=>
    bool(true)
    ["level_8"]=>
    bool(true)
    ["level_7"]=>
    bool(true)
    ["level_6"]=>
    bool(true)
    ["level_5"]=>
    bool(true)
    ["level_4"]=>
    bool(true)
    ["level_3"]=>
    bool(true)
    ["level_2"]=>
    bool(true)
    ["level_1"]=>
    bool(true)
    ["level_0"]=>
    bool(true)
    ["edit_others_pages"]=>
    bool(true)
    ["edit_published_pages"]=>
    bool(true)
    ["publish_pages"]=>
    bool(true)
    ["delete_pages"]=>
    bool(true)
    ["delete_others_pages"]=>
    bool(true)
    ["delete_published_pages"]=>
    bool(true)
    ["delete_posts"]=>
    bool(true)
    ["delete_others_posts"]=>
    bool(true)
    ["delete_published_posts"]=>
    bool(true)
    ["delete_private_posts"]=>
    bool(true)
    ["edit_private_posts"]=>
    bool(true)
    ["read_private_posts"]=>
    bool(true)
    ["delete_private_pages"]=>
    bool(true)
    ["edit_private_pages"]=>
    bool(true)
    ["read_private_pages"]=>
    bool(true)
    ["delete_users"]=>
    bool(true)
    ["create_users"]=>
    bool(true)
    ["unfiltered_upload"]=>
    bool(true)
    ["edit_dashboard"]=>
    bool(true)
    ["update_plugins"]=>
    bool(true)
    ["delete_plugins"]=>
    bool(true)
    ["install_plugins"]=>
    bool(true)
    ["update_themes"]=>
    bool(true)
    ["install_themes"]=>
    bool(true)
    ["update_core"]=>
    bool(true)
    ["list_users"]=>
    bool(true)
    ["remove_users"]=>
    bool(true)
    ["add_users"]=>
    bool(true)
    ["promote_users"]=>
    bool(true)
    ["edit_theme_options"]=>
    bool(true)
    ["delete_themes"]=>
    bool(true)
    ["export"]=>
    bool(true)
    ["administrator"]=>
    bool(true)
    }
    ["filter"]=>
    NULL
    }

  2. Skip to note 10 content

    I always prefer to check if the variable ($user) is empty or not before echoing any properties of the $user object:

    $user = get_user_by( ’email’, ‘user@example.com’ );

    if ( ! empty( $user ) ) {
    echo ‘User is ‘ . $user->first_name . ‘ ‘ . $user->last_name;
    }

    This is to keep things clean and prevent error messages and warnings.

  3. Skip to note 14 content

    Find user by id / email / username

     
    $new_member_id = $_POST['new_member_id'];
    $u = null;
        
    if (intval($new_member_id)) $u = get_user_by('id', $new_member_id);
    else if (strpos($new_member_id, '@') != false) $u = get_user_by('email', $new_member_id);
    else $u = get_user_by('login', $new_member_id);

You must log in before being able to contribute a note or feedback.