WP_User::get_data_by() – Return only the main user fields

You appear to be a bot. Output may be restricted

Description

Returns only the main user fields.

Usage

$object|false = WP_User::get_data_by( $field, $value );

Parameters

$field
( string ) required – The field to query against: 'id', 'ID', 'slug', 'email' or 'login'.
$value
( string|int ) required – The field value.

Returns

object|false Raw user object.

Source

File name: wordpress/wp-includes/class-wp-user.php
Lines:

1 to 69 of 69
  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;
  }
 

 View on GitHub View on Trac