Actuellement, j'ajoute des métadonnées utilisateur avec la clé position_name
et une valeur de chaîne représentant la position d'un utilisateur, de sorte que je puisse récupérer la position d'un utilisateur au moyen d'un appel similaire à:
$position = get_user_meta(22, 'position_name', true);
Cela fonctionne parfaitement pour un poste par utilisateur, mais j'aimerais pouvoir associer chaque utilisateur à plusieurs postes. L'ajout d'un tableau sérialisé dans le champ position_name
serait-il un moyen approprié d'y parvenir?
J'espère que cela à du sens..
Si vous extrayez la documentation de la fonction update_user_meta()
, vous remarquerez que le paramètre $meta_value
accepte déjà les objets et les tableaux, de sorte que vous pouvez simplement sauvegarder les positions d'un utilisateur dans un tableau sans effort supplémentaire:
update_user_meta(
22,
'position_names',
array(
'Khaleesi of the Great Grass Sea',
'Breaker of Chains',
'Mother of Dragons'
)
);
Les méta-fonctions utilisateur s’occupent déjà de la sérialisation et de la désérialisation de la matrice (en la convertissant respectivement en chaîne). Notez que la documentation de get_user_meta()
spécifie que le dernier paramètre $single
indique s'il faut renvoyer directement une méta-valeur ou renvoyer toutes les valeurs d'un tableau. Vous cherchez à obtenir tous les position_name
s, vous devriez donc passer false
en tant que $single
ou omettre entièrement l'argument (auquel cas, la valeur par défaut sera false
):
$position_names = get_user_meta( 22, 'position_names' );
//$position_names[0] === 'Khaleesi of the Great Grass Sea'
//$position_names[1] === 'Breaker of Chains'
//$position_names[2] === 'Mother of Dragons'
Remarque
Si vous utilisez ultérieurement
update_user_meta()
pour stocker un objet (ou un tableau associatif), sachez que vous risquez de rencontrer le problème bug n ° 9640