web-dev-qa-db-fra.com

Obtenir l'utilisateur actuel

J'essaie d'utiliser des informations sur l'utilisateur actuel dans un plugin que je conçois et j'ai vu des gens s'y prendre de différentes manières.

Ma façon

Cela semble fonctionner, mais est-ce qu'il me manque quelque chose?

global $current_user;

// Use information
echo "User ID: " . $current_user->user_id;
echo "User First Name: " . $current_user->first_name;

J'ai vu des gens appeler la fonction get_currentuserinfo() sur la ligne suivante après avoir déclaré la variable globale $ current_user. Cependant, cela semble fonctionner sans cet appel - est-ce nécessaire?

De plus, il y a la fonction wp_get_current_user() - quelle est la différence entre this et get_currentuserinfo()?

J'ai également vu des personnes utiliser une variable globale appelée $profileuser et utiliser get_user_to_edit() pour la définir sur l'objet utilisateur. Y at-il un avantage à cela?

J'ai également vu des gens se référer directement à la variable globale $user_ID en plus d'utiliser le $current_user. Pourquoi n'utilisent-ils pas simplement $current_user->ID?

2
William
  1. Appelez la fonction get_currentuserinfo() sur la ligne suivante après avoir déclaré la variable globale $current_user

  2. Quelle est la différence entre wp_get_current_user() et get_currentuserinfo()?

Ci-dessous, un extrait:

function wp_get_current_user() {

    global $current_user;

    get_currentuserinfo();

    return $current_user;
}

Je pense que le code source répond à vos deux premières questions, non?

Rappelez-vous que wp_get_current_user() est défini dans wp-includes/pluggable.php pour pouvoir être remplacé.

En outre, il est prudent de s'en tenir à global $current_user car WordPress appelle wp_get_current_user() lors de l'initialisation.

Plus précisément, wp-settings.php -> new WP -> WP-> init () -> wp_get_current_user


L'utilisation de $profileuser, cette variable globale n'est disponible que lorsque vous modifiez un utilisateur (user-edit.php) et que les données en sont le contenu.

La dernière question à laquelle je ne sais pas vraiment comment répondre alors je laisserai les autres.

J'espère que ça ne vous dérange pas.

8
Jesse