_wp_get_current_user() – Retrieves the current user object.

You appear to be a bot. Output may be restricted

Description

Retrieves the current user object.

Will set the current user, if the current user is not set. The current user will be set to the logged-in person. If no user is logged-in, then it will set the current user to 0, which is invalid and won't have any permissions. This function is used by the pluggable functions wp_get_current_user() and get_currentuserinfo(), the latter of which is deprecated but used for backward compatibility.

Usage

$WP_User = _wp_get_current_user();

Parameters

Returns

WP_User Current WP_User instance.

Source

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

1 to 50 of 50
function _wp_get_current_user() {
  global $current_user;

  if ( ! empty( $current_user ) ) {
    if ( $current_user instanceof WP_User ) {
      return $current_user;
    }

    // Upgrade stdClass to WP_User.
    if ( is_object( $current_user ) && isset( $current_user->ID ) ) {
      $cur_id       = $current_user->ID;
      $current_user = null;
      wp_set_current_user( $cur_id );
      return $current_user;
    }

    // $current_user has a junk value. Force to WP_User with ID 0.
    $current_user = null;
    wp_set_current_user( 0 );
    return $current_user;
  }

  if ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) {
    wp_set_current_user( 0 );
    return $current_user;
  }

  
/**
 * Filters the current user.
 *
 * The default filters use this to determine the current user from the
 * request's cookies, if available.
 *
 * Returning a value of false will effectively short-circuit setting
 * the current user.
 *
 * @since 3.9.0
 *
 * @param int|false $user_id User ID if one has been determined, false otherwise.
 */
  $user_id = apply_filters( 'determine_current_user', false );
  if ( ! $user_id ) {
    wp_set_current_user( 0 );
    return $current_user;
  }

  wp_set_current_user( $user_id );

  return $current_user;
}
 

 View on GitHub View on Trac