Je souhaite utiliser $ wpdb pour obtenir le prénom de l'utilisateur. Je sais comment faire avec php et mysql, mais je veux utiliser $ wpdb.
Le problème est que je ne sais pas comment l'utiliser. J'ai essayé de créer une requête simple pour afficher l'utilisateur fist_name par user_id et que je l'utilise en écho. C'est ce que j'ai fini avec:
$mywpdb1 = $wpdb->get_var(
$wpdb->prepare(
"SELECT first_name
FROM $wpdb->usermeta
WHERE user_id = 2",
$user->first_name
)
);
echo $mywpdb1;
Vous ne devriez pas vraiment utiliser la requête wp ici, utilisez get_user_meta ();
Exemple:
$first_name = get_user_meta(2, 'first_name', true);
Si vous souhaitez effectuer une requête directe dans la base de données pour le champ méta first_name
, procédez comme suit:
global $wpdb;
$user_id = 2;
$meta_key = "first_name";
$first_name = $wpdb->get_var(
$wpdb->prepare(
"SELECT meta_value
FROM $wpdb->usermeta
WHERE user_id = %d
AND meta_key = %s",
$user_id,
$meta_key
)
);
echo $first_name;
Mais je pense qu'il est préférable d'utiliser l'objet WP_User
, qui contient le champ méta first_name
en tant que propriété publique:
// Get the user with ID = 2
$user = new WP_User( 2 );
// Grab de the first_name
$first_name = $user->first_name;
Vous pouvez également utiliser la fonction get_user_meta()
, comme suggéré par @PaulH:
$first_name = get_user_meta(2, 'first_name', true);
Mais je pense que l'objet WP_User
vaut mieux que get_user_meta()
pour ce cas particulier pour les raisons suivantes:
$user->first_name
.get_user_meta()
( à la fin, il utilise cette fonction ), il charge tout champs méta utilisateur, même si vous ne voulez qu'un champ. Cela peut avoir de très mauvaises performances que de charger un objet WP_User
dans certaines situations.