Comment travailler avec les métadonnées des utilisateurs WordPress

Dans l'article précédent, nous avons expliqué comment utiliser les métadonnées de publication dans WordPress à l'aide des API fournies. Nous avons également abordé divers outils, les notions de sécurité et ce qui serait nécessaire pour configurer l'environnement dans lequel utiliser le code qui serait fourni tout au long du didacticiel..

Si vous n'avez pas lu cet article, je vous recommande vivement de l'examiner non seulement parce qu'il explique comment utiliser les métadonnées post, mais également parce qu'il aborde des sujets importants qui sont pertinents pour le reste des articles de cette série (et il fait allusion à certains qui doivent venir plus tard cette année).

En supposant que vous soyez tous pris au dépourvu et prêts à en apprendre davantage sur une autre API de métadonnées, commençons par la WordPress User Meta API.

La méta API utilisateur WordPress

Rappelez-vous que, plus tôt dans cette série, WordPress définit les métadonnées de la manière suivante:

Les méta-données sont traitées avec des paires clé / valeur. La clé est le nom de la méta-donnée. La valeur est l'information qui apparaîtra dans la liste de méta-données sur chaque article individuel auquel l'information est associée..

Au fur et à mesure que nous continuons à travailler avec les différentes API de métadonnées, vous constaterez que cette définition reste vraie, quelle que soit l'API explorée..

La bonne chose est qu'une fois que vous avez maîtrisé le traitement d'une API de métadonnées, vous avez une idée générale du fonctionnement de chacune des API associées. Bien sûr, il peut y avoir des nuances ici et là, mais la fonctionnalité générale sera la même.

Utilisation de l'API de métadonnées de l'utilisateur

Lorsque nous avons examiné WordPress Post Meta API, nous avons examiné et utilisé les fonctions suivantes:

  • add_post_meta
  • update_post_meta
  • get_post_meta
  • delete_post_meta

Oui, il y a des idiosyncrasies entre eux, surtout en ce qui concerne la façon dont add_post_meta et update_post_meta travail et les divers moyens get_post_meta et delete_post_meta fonctionne, et les API que nous allons examiner fonctionneront beaucoup de la même manière.

Pour le reste de cet article, je suppose que vous avez un serveur Web local, un accès à une base de données frontale, un IDE et que vous êtes à l'aise avec le fichier. tutsplus-metadata.php.

Si vous êtes curieux, j'utiliserai les outils suivants:

  • MAMP
  • Atome
  • Suite Pro
  • vingt-six

Notez que les métadonnées de l’utilisateur seront stockées dans wp_usermeta table de base de données, donc nous allons référencer cela dans toutes les captures d'écran de la base de données. Contrairement à la table de métadonnées de publication initiale, certaines données figurent déjà dans la table de métadonnées de l'utilisateur..

Cela est dû à certaines des données stockées sur l'écran du profil de l'utilisateur:

Néanmoins, l'API va nous permettre d'écrire nos propres informations sur la table. Donc, avec tout ce que cela a dit, allons-y et voyons comment utiliser les fonctions fournies par WordPress..

Notez que dans tous les exemples donnés, nous allons passer 1 pour le premier paramètre aux fonctions de l'API puisque le premier utilisateur est toujours l'administrateur du site. Ceci est généralement garanti pour être présent dans toute installation donnée.

Ajout de méta utilisateur

Vous pouvez trouver une référence à la add_user_meta fonction dans le Codex. La définition de la fonction est aussi succincte que possible:

Ajouter des métadonnées à l'enregistrement d'un utilisateur.

Comment est-ce bénéfique? C'est-à-dire que si vous travailliez sur un plugin ou une application Web basé sur WordPress et que vous cherchiez à étendre ce qu'une personne peut associer à son profil, c'est une façon de le faire..

Cela peut être quelque chose d'aussi simple que de fournir le profil d'un utilisateur sur un réseau social donné, ou bien d'associer l'utilisateur à des données contenues dans une autre table, à un tableau d'informations ou à autre chose..

Quoi qu’il en soit, voici comment procéder. Voici la chose, cependant: souvenez-vous comment écrire des métadonnées pour un post en utilisant le add_post_meta la fonction a abouti à plusieurs lignes pouvant être écrites en utilisant la même clé?

La même chose est possible en utilisant add_user_meta. Cependant, la fonction API accepte un quatrième paramètre facultatif indiquant si la valeur insérée doit être unique ou non..

Valeurs non uniques

Alors tout d’abord, examinons le code permettant d’ajouter des métadonnées d’utilisateur, et ne le précisons pas en spécifiant qu’il doit être unique..

Le code pour faire cela ressemblera à ceci:

Notez que nous utilisons la même stratégie que celle utilisée précédemment dans cette série:

  1. Nous accrocher dans le contenu.
  2. Nous vérifions si nous sommes sur le Bonjour le monde poster.
  3. Si oui, nous ajoutons les métadonnées de l'utilisateur.
  4. Nous retournons $ contenu à WordPress.

Avec ce code en place et avec le Bonjour le monde publication chargée dans votre navigateur, actualisez la page plusieurs fois.

Une fois cela fait, la table de base de données résultante ressemblera à ceci:

Comme je l'ai dit, cela ressemble beaucoup à la performance de l'API de métadonnées post.

Valeurs uniques

A l’aide de votre base de données frontale, supprimez les lignes créées ou choisissez une nouvelle clé (par exemple, nom d'utilisateur instagram). Je vais supprimer les lignes.

Deuxièmement, je vais également créer une deuxième fonction plutôt que de modifier celle ci-dessus afin de pouvoir offrir le code source complet à la fin du didacticiel. Lisez donc attentivement le code suivant:

Tout d'abord, fournissez une valeur unique pour la méta-valeur (ou le troisième argument) dans l'appel de fonction. Actualisez la page plusieurs fois, puis examinez la base de données. Ça devrait ressembler a quelque chose comme ca:

Remarquez ce qui est intéressant? Il y a toujours plusieurs valeurs, mais elles sont toutes identiques.

Maintenant, essayez de changer l'argument de la méta-valeur à quelques reprises, puis jetez un coup d'œil à la base de données et vous devriez voir quelque chose comme:

Remarquez la différence? Exactement, il n'y en a pas. C'est parce que nous avons dit qu'il ne pouvait y avoir qu'une clé unique. Cela ne signifie donc pas nécessairement qu'un seul enregistrement est créé. Cela signifie que plusieurs enregistrements seront créés lors de l'appel de la fonction, mais que la première valeur stockée associée à ladite clé sera toujours utilisée..

Si vous le souhaitez, supprimez les lignes que nous venons de créer, car cela vous permettra de passer facilement à la fonction suivante..

Mise à jour de la méta utilisateur

De manière similaire au fonctionnement de Post Meta API, la fonctionnalité de mise à jour fonctionne de la manière suivante:

Mettez à jour le champ méta utilisateur en fonction de l'ID utilisateur. Utilisez le paramètre $ prev_value pour différencier les méta-champs avec la même clé et le même ID utilisateur. Si le champ méta pour l'utilisateur n'existe pas, il sera ajouté.

Lorsque vous travaillez avec cette fonction, il est utile de réfléchir à cela dans deux scénarios:

  1. lorsque les métadonnées précédentes ont été ajoutées à l'aide du add_user_meta fonction et il y a plusieurs enregistrements avec les mêmes informations
  2. quand aucune métadonnée n'a été ajoutée et que nous ajoutons un nouvel enregistrement et que nous voulons qu'il soit unique

Dans le premier cas, il est utile de fournir la $ prev_value parce que vous dites à WordPress quelle valeur cibler et mettre à jour. 

Quand nous avons ajouté des métadonnées

Par exemple, supposons que notre base de données se présente comme précédemment dans le didacticiel:

Et nous voulons mettre à jour les enregistrements qui ont la valeur précédente de https://twitter.com/tommcfarlin/. Pour ce faire, nous mettrons à jour le code qui ressemble à ceci.

Et puis la mise à jour de la base de données ressemblerait à ceci:

Notez que cela met à jour tout les valeurs associées à cette clé méta. Bien sûr, ce n'est qu'une utilisation de la fonction.

Lors de l'ajout de nouvelles métadonnées

Dans le second cas, vous n'aurez pas besoin de spécifier une valeur précédente car vous allez ajouter des informations pour la première fois.. 

Pour clarifier, vous pouvez utiliser le update_user_meta fonctionne lorsque vous souhaitez ajouter des informations à la base de données. Il n'est pas nécessaire qu'il existe avant de l'utiliser.

Ceci est utile lorsque vous souhaitez ajouter un seul enregistrement unique qui n'a pas encore été ajouté à la base de données. Utiliser la fonction est simple. Disons que nous voulons enregistrer le nom de la fratrie de l'utilisateur.

Dans ce cas, nous ferions ceci:

Et cela entraîne l'enregistrement suivant dans la base de données:

Si vous actualisez la page plusieurs fois, puis vérifiez votre table de base de données, vous remarquerez qu'une seule instance de la valeur est écrite par rapport à plusieurs valeurs fournies lors de l'utilisation add_user_meta.

Ensuite, si nous voulions changer cette valeur, nous mettrions à jour la méta-valeur associée à la clé méta spécifiée et l'actualisation de cet enregistrement unique..

Récupération de méta utilisateur

Quand il s’agit de récupérer les métadonnées de l’utilisateur, nous avons le get_user_meta une fonction. À ce stade, il devrait être clair que les paramètres attendus seront l’ID utilisateur et la clé méta.. 

Mais qu'en est-il de la méta valeur?

Rappelez-vous que lorsque nous récupérons des informations, nous n'avons besoin que de l'ID utilisateur et de la clé méta, car il s'agit des informations d'identification d'une valeur spécifique.. 

Mais que se passe-t-il si le développeur a plusieurs enregistrements pour une seule clé? Plus précisément, s’ils ont utilisé le add_user_meta fonctionner comme nous l'avons fait ci-dessus et avoir plusieurs enregistrements?

C'est là qu'intervient le quatrième paramètre facultatif: une valeur booléenne que nous spécifions si nous voulons extraire une valeur unique ou un tableau de valeurs. La valeur par défaut (celle qui est transmise si elle n'est pas spécifiée) est faux donc nous allons toujours revenir un tableau, sauf indication contraire.

Récupération de tous les enregistrements

Supposons que nous travaillions sur le même ensemble de données que précédemment dans le didacticiel. C'est-à-dire que nous avons plusieurs entrées pour le compte Twitter d'un utilisateur. Rappelons que la base de données ressemblait à ceci:

Pour extraire toutes ces informations de la base de données et les afficher à l'écran, nous utilisons le code suivant:

En supposant que tout se soit bien passé, vous devriez voir quelque chose comme ceci en haut de votre Bonjour le monde poster:

[0] => chaîne (32) "https://twitter.com/tommcfarlin/" [1] => chaîne (32) "https://twitter.com/tommcfarlin/" [2] => chaîne ( 32) "https://twitter.com/tommcfarlin/" [3] => chaîne (32) "https://twitter.com/tommcfarlin/"

Si ce n’est pas le cas, revérifiez l’appel que vous avez effectué et assurez-vous que les informations est dans la base de données prêt à être récupéré.

Récupérer un seul enregistrement

Dans le cas où vous souhaitez récupérer un seul enregistrement, vous pouvez passer true comme paramètre final à la fonction. Ceci récupérera le premier enregistrement créé au format chaîne..

Et le résultat de ce code sera affiché en haut de la page. Bonjour le monde poste à partir duquel nous avons travaillé:

https://twitter.com/tommcfarlin/

Notez que si vous utilisez update_user_meta et toi ne pas spécifier vrai comme paramètre final, vous obtiendrez un tableau à index unique. 

array (1) [0] => string (32) "https://twitter.com/tommcfarlin/"

Ainsi, si vous recherchez une représentation sous forme de chaîne d'informations, passez toujours vrai.

Suppression de méta utilisateur

La dernière chose à couvrir est de savoir comment supprimer les données que nous avons écrites dans la base de données. Si vous avez suivi cette série jusqu'à présent, vous développez probablement une sorte d'intuition quant à la façon dont cette fonction va fonctionner..

À partir de la page du Codex qui l’accompagne:

Supprimer les critères de correspondance de métadonnées d'un utilisateur. Vous pouvez apparier en fonction de la clé ou de la clé et de la valeur. La suppression basée sur la clé et la valeur empêchera la suppression des métadonnées en double avec la même clé. Il permet également de supprimer toutes les clés de correspondance de métadonnées, si nécessaire.

Notez que cette fonction est conçue pour fonctionner dans le cas où il existe plusieurs enregistrements et que vous souhaitez tous les supprimer, ou lorsque vous avez un seul enregistrement qui existe et que vous souhaitez le supprimer..

Suppression de plusieurs enregistrements

Dans un premier temps, nous verrons comment utiliser cette fonction lorsque plusieurs enregistrements contiennent les mêmes informations. Supposons, aux fins de cet exemple, que la base de données ressemble à ceci:

Ici, nous avons plusieurs enregistrements. Afin de supprimer des enregistrements ayant la même clé, nous utilisons un seul appel à la delete_user_meta fonction et passe l'ID utilisateur et la clé méta.

Et si vous actualisez les informations de la table de base de données, vous remarquerez que tous les enregistrements ont été effacés:

Bien que cette fonction soit facile à utiliser, il est important de se rappeler qu’elle peut supprimer plusieurs lignes en un seul appel. Utilisez-la donc avec précaution..

Un seul enregistrement

Si, par contre, vous avez un seul enregistrement à supprimer, vous avez besoin de trois informations:

  1. l'identifiant de l'utilisateur
  2. la méta clé
  3. la méta valeur

Avoir ces trois valeurs vous permettra de supprimer un seul enregistrement. Clairement, cela permet beaucoup plus de précision que l'utilisation précédente de cette fonction. 

Donc, dans notre exemple, disons que nous avons deux disques, les deux ayant le compte Twitter méta clé. Chaque clé a la valeur suivante:

  1. https://twitter.com/tommcfarlin
  2. https://twitter.com/pressware

Dans notre exemple, nous ne cherchons qu'à supprimer la deuxième valeur. Pour ce faire, nous allons utiliser le code suivant:

Et ensuite, si vous actualisez votre base de données, vous devriez voir ce qui suit (ou quelque chose de similaire):

C'est bien quand une API fonctionne exactement comme prévu.

Le code source complet

Voici une copie de tout le code source décrit dans cet article. Veuillez noter que le add_action les appels ont été commentés car vous devrez les commenter en fonction de ce que vous voulez faire lorsque vous essayez le code.

De plus, n'hésitez pas à ajouter ceci au fichier que nous avons créé dans le précédent tutoriel. C'est ce que j'ai fait en travaillant sur les exemples. Cependant, vous pouvez être prudent lorsque vous travaillez sur le fichier afin que le bon add_action les appels sont établis en fonction de ce que vous souhaitez faire.

Conclusion

Comme mentionné précédemment dans l'article, vous pouvez consulter chacune des fonctions du Codex WordPress, ce qui devrait toujours être à la portée d'un développeur WordPress..

Dans le dernier article de cette série, nous allons examiner comment traiter les métadonnées de commentaires. Compte tenu de ce que nous avons appris jusqu’à présent, cela devrait être quelque chose de relativement facile à comprendre.. 

Bien sûr, cela nous laisse toujours avec des métadonnées liées aux taxonomies. En raison de la nature des taxonomies, des termes et des API, nous examinerons celles de la série de suivi..

Pour l'instant, continuez à expérimenter avec le code fourni dans cet article. N'oubliez pas qu'il est destiné uniquement à des fins de démonstration et ne doit pas être exécuté dans un environnement de production..

Tout au long de cette série, nous essayons de jeter les bases des futurs développeurs WordPress lorsqu'ils élaboreront des solutions pour leur employeur, leurs clients ou leurs propres projets..

Cela dit, je suis impatient de continuer cette série. N'oubliez pas que si vous débutez, vous pouvez consulter ma série sur la façon de démarrer avec WordPress, qui traite de sujets spécifiques aux débutants de WordPress..

En attendant, si vous recherchez d'autres utilitaires pour vous aider à développer votre ensemble croissant d'outils pour WordPress ou pour que le code soit étudié et approfondi dans WordPress, n'oubliez pas de voir ce que nous avons disponible dans Envato. Marché.

Enfin, vous pouvez voir tous mes cours et tutoriels sur ma page de profil, et vous pouvez lire plus d'articles sur WordPress et le développement de WordPress sur mon blog. N'hésitez pas à me suivre également sur Twitter à @tommcfarlin, où je parle de diverses pratiques de développement de logiciels et de la façon dont nous pouvons les utiliser dans WordPress..

S'il vous plaît n'hésitez pas à laisser des questions ou des commentaires dans le flux ci-dessous, et je vais essayer de répondre à chacun d'eux.

Ressources

  • Les champs personnalisés
  • add_user_meta
  • update_user_meta
  • get_user_meta
  • delete_user_meta
  • écho
  • var_dump