Comment créer et utiliser les métadonnées utilisateur WordPress (méta utilisateur) • WPShout

By | août 9, 2019

Expert WordPress

Dans cet article, nous explorons les métadonnées des utilisateurs WordPress, généralement appelées simplement Meta utilisateur WordPress.

Nous expliquerons, entre autres:

  • Comment ajouter des champs de méta utilisateur personnalisés dans WordPress,
  • Comment obtenir des méta-données utilisateur dans votre code PHP WordPress,
  • Comment supprimer et mettre à jour la méta utilisateur, et
  • Nos suggestions pour créer facilement des métaboxes utilisateur modifiables par d'autres utilisateurs.

Qu'est-ce que la méta utilisateur WordPress est

La méta utilisateur WordPress est «des champs personnalisés pour vos utilisateurs».

La méta utilisateur existe depuis WordPress 3.0 et occupe tout un tableau de la base de données WordPress: wp_usermeta. C’est donc un élément bien établi de l’architecture de WordPress. Maintenant qu'est-ce que c'est?

Voici la définition la plus simple: La méta utilisateur est "des champs personnalisés pour vos utilisateurs".

En d'autres termes, tout comme WordPress post meta– également appelés champs personnalisés – vous permet d’ajouter toute information que vous souhaitez sur votre des postesWordPress méta utilisateur vous permet d'ajouter toutes les informations que vous souhaitez sur votre utilisateurs.

Maintenant: pourquoi voudriez-vous ajouter un méta utilisateur?

Exemples où WordPress Custom User Meta est utile

Voici quelques exemples qui me viennent à l’esprit, certains de mon propre travail avec des clients et d’autres de mon utilisation de plugins tiers. Je suis sûr que vous pouvez penser aux autres.

  • Je travaille avec un site WordPress dont les utilisateurs sont des gestionnaires de biens. Chaque gestionnaire immobilier dispose d'un tableur Google Sheets contenant les propriétés qu'il gère. Le client m'a demandé de sauvegarder l'URL de cette feuille de calcul pour chaque utilisateur, afin que celui-ci puisse y accéder dans un tableau de bord privé. Je l'ai fait en tant que méta utilisateur appelé "Spreadsheet URL".
  • J'ai écrit un site Web de débat simple dans WordPress, où les utilisateurs participent à des débats sur des équipes adverses randomisées. Le site comporte un «classement» qui répertorie les utilisateurs qui ont remporté le plus de débats. Je stocke l’enregistrement des victoires / pertes de chaque utilisateur en tant que méta utilisateur personnalisé.
  • Nous avons utilisé divers plugins d’abonnement, tels que MemberPress sur courses.wpshout.com. Les plugins d’appartenance utilisent des méta utilisateur personnalisées pour stocker des éléments des informations d’adhésion d’un utilisateur.
  • Yoast possède un certain nombre de champs méta utilisateur qui vous permettent de contrôler le côté SEO de la page d’archives de l’auteur de cet utilisateur. Vous trouverez ci-dessous les champs de méta utilisateur pour wpshout.com/author/fred.

Exemple de méta utilisateur wordpress personnalisé yoast

Vous utilisez la méta utilisateur pour «en savoir plus sur vos utilisateurs» par rapport aux données fournies par défaut.

Le fil conducteur de cet exemple est le suivant: vous utilisez «post méta» pour «en savoir plus sur vos publications» que les données fournies par défaut (telles que leur titre Yoast SEO ou leur auteur personnalisé), vous utilisez la méta utilisateur pour «en savoir plus sur vos utilisateurs» que les données fournies par défaut.

Comment ajouter, obtenir et modifier les métadonnées de l'utilisateur WordPress

Cette section explique comment créer, mettre à jour, obtenir et supprimer des méta utilisateurs WordPress. Tout au long de cette section, gardez à l’esprit la similitude entre les méta utilisateurs WordPress et les post-méta de WordPress: les deux systèmes sont presque identiques, sauf qu’ils fonctionnent sur différents types d’objets de données (posts, transformés en objets WP_Posts; utilisateurs, transformés en objets comme WP_Users). Donc, si vous comprenez notre article sur les champs personnalisés, cet apprentissage sera rapide pour vous.

Ajout ou modification de métadonnées utilisateur WordPress: update_user_meta ()

La fonction permettant d'ajouter ou de mettre à jour les métadonnées de l'utilisateur WordPress est appelée update_user_meta (), et il se présente comme suit:

update_post_meta ($ user_id, $ meta_key, $ meta_value, $ prev_value);

Ses arguments, dans l'ordre, sont les suivants:

  1. $ user_id: L'ID de l'utilisateur à affecter.
  2. $ meta_key: Nom du champ méta de l'utilisateur à affecter.
  3. $ meta_value: La valeur que le champ méta de l'utilisateur doit maintenant prendre. Il peut s'agir d'une chaîne, d'un entier, d'un tableau ou de tout autre type de données, selon vos besoins.
  4. $ prev_value: Ce paramètre facultatif gère les clés méta en double. Vous pouvez presque toujours laisser tomber.

Cette fonction est presque identique à update_post_meta (), la fonction équivalente pour changer les métadonnées post, et les deux fonctions fonctionnent de manière très similaire.

Exemple de code: update_user_meta ()

Voici un exemple de update_user_meta () fonction en action:

<? php
fonction wpshout_you_found_this_post () 
// Si ce n'est pas un utilisateur connecté qui regarde cela, tant pis
if (! is_user_logged_in ()):
revenir;
fin si;

// Définit la méta de l'utilisateur "wpshout_found_this_page" sur true pour l'utilisateur actuel
update_user_meta (get_current_user_id (), 'wpshout_found_this_post', true);
revenir '

Vous avez trouvé ce post!

'; // Enveloppe la fonction dans un shortcode pour l'afficher n'importe où add_shortcode ('wpshout_foundme', 'wpshout_you_found_this_post');

Que fait cet exemple de code? Si vous deviez l'installer en tant que plugin, puis mettre le shortcode [wpshout_foundme] sur n'importe quelle publication de votre site, puis chaque fois qu'un utilisateur connecté visite cette publication, la valeur de cet utilisateur pour la clé méta de l'utilisateur wpshout_found_this_post serait mis à true. (L'utilisateur verrait également un paragraphe qui dit "Vous avez trouvé ce message!")

Vous pouvez utiliser ceci pour un étrange problème avec un œuf de Pâques avec vos utilisateurs connectés, puis consulter leur méta d'utilisateur plus tard pour voir combien d'entre eux ont trouvé l'œuf de Pâques. Ou peu importe. 🙂 Quoi qu’il en soit, c’est une démonstration de travail update_user_meta ().

Utilisation update_user_meta (), ou changer méta utilisateur à la main dans l'interface d'administration WordPress? Ça dépend

Comme avec update_post_meta (), WordPress update_user_meta () fonction utilise PHP pour faire quelque chose que vous pouvez aussi faire à la main: changer un post de méta pour un utilisateur donné.

Alors changez-vous ces informations manuellement ou utilisez PHP? Comme dans le cas de post meta, tout dépend du fait que vous souhaitez apporter quelques modifications manuellement à des utilisateurs spécifiques ou des milliers de modifications automatiquement.

Organisez un camp d’été, stockez les campeurs en tant qu’utilisateurs et souhaitez laisser les conseillers de votre camp stocker les informations relatives à l’allergie de chaque utilisateur inscrit en tant que méta de l’utilisateur? Utilisez des pods (voir ci-dessous) pour créer une interface leur permettant de saisir ces données.

Avez-vous des milliers d'utilisateurs sur un site de forum et souhaitez attribuer automatiquement un badge «Vétéran» à tout utilisateur dont le compte a plus de trois ans? Le faire avec update_user_meta ().

update_user_meta () contre. add_user_meta ()

Il y a une fonction, add_user_meta (), c’est-à-dire créer une méta d’utilisateur si elle n’existe pas. Voici la chose, cependant: update_user_meta () ça ira add_user_meta ()«Travail pour cela si le méta utilisateur que vous essayez de mettre à jour n’existe pas déjà.

Je n'ai jamais trouvé d'utilisation réelle add_user_meta () (comme je n’ai pas add_post_meta ()), je vous recommande donc de ne pas en tenir compte, sauf si vous avez une bonne raison de faire autrement.

Récupération des métadonnées utilisateur WordPress: get_user_meta ()

le get_user_meta () La fonction est assez simple et assez importante: c’est ainsi que vous récupérez un méta utilisateur stocké pour pouvoir faire quelque chose avec. Il se présente comme suit:

get_user_meta ($ user_id, $ meta_key, $ single);

Ses trois arguments, dans l'ordre, sont les suivants:

  1. L'ID de l'utilisateur dont vous souhaitez récupérer la méta.
  2. Une clé méta utilisateur. Dans l'exemple ci-dessus, que nous allons continuer ici, la clé que nous avons spécifiée est wpshout_found_this_post. Notez que cet argument est techniquement optionnel: si vous ne le remplissez pas, vous obtiendrez un tableau associatif de tout les métadonnées de l'utilisateur. (C’est rare que ce soit ce que je veux, mais cela arrive parfois.)
  3. Si nous souhaitons que notre valeur de champ personnalisé soit une valeur unique ou un tableau. Si nous mettons à vrai, comme nous l’avons fait ici, nous n’obtenons que la valeur unique. Si nous ne le spécifions pas ou ne le configurions pas faux, nous allons récupérer un tableau. Si les données que vous attendez sont simplement une chose, comme une chaîne ou un entier (donc la plupart du temps), vous voudrez définir cet argument avec vrai.

Pour être sûr de le noter, get_user_meta () est presque identique à son homologue pour les postes, get_post_meta ().

Exemple de code: get_user_meta ()

Voici un exemple de code fonctionnel:

<? php
fonction wpshout_inflict_nag_message_to_find_the_post () 
// Si ce n'est pas un utilisateur connecté qui regarde cela, tant pis
if (! is_user_logged_in ()):
revenir;
fin si;

// Récupère la méta valeur utilisateur "wpshout_found_this_page" pour l'utilisateur actuel
// (en tant que valeur unique, pas un tableau) et enregistrez-le dans la variable $ found
$ found = get_user_meta (get_current_user_id (), 'wpshout_found_this_post', true);

// Crée un message de rappel JavaScript sauf si la valeur de $ found est true
if (! isset ($ found) 
// Appelle la fonction écrire avant le  section ferme
add_action ('wp_head', 'wpshout_inflict_nag_message_to_find_the_post');

Que fait le code ci-dessus? Une alerte JavaScript super agaçante apparaît à chaque chargement de page jusqu'à ce que l'utilisateur en question trouve le message update_user_meta () exemple ci-dessus. Cela pourrait être génial pour aliéner tous les utilisateurs, à l'exception des utilisateurs les plus fidèles de votre site, si vous souhaitez le faire pour une raison quelconque.

Supprimer les métadonnées de l'utilisateur WordPress: delete_user_meta ()

Pour supprimer une donnée d'utilisateur d'un utilisateur, utilisez la fonction delete_user_meta (). Cette fonction est, encore une fois, presque identique dans sa forme et sa fonction à delete_post_meta ()– sauf pour les utilisateurs, pas pour les publications – et son utilisation est simple. Il se présente comme suit:

delete_user_meta ($ user_id, $ meta_key, $ meta_value);

Ses arguments sont:

  1. $ post_id: L'ID de l'utilisateur à affecter.
  2. $ meta_key: Nom du champ personnalisé à supprimer des métadonnées de la publication.
  3. $ meta_value: Ce paramètre facultatif gère les clés méta en double. Vous pouvez presque toujours laisser tomber.

Exemple de code: delete_user_meta ()

Ok, disons que nous voulons supprimer le wpshout_found_this_post drapeau d'un utilisateur qui fait trouver le message – afin qu'il puisse voir plus d'alertes JavaScript douces et douces.

<? php
fonction wpshout_make_sure_user_is_haunted_by_nag_message () 
// Si ce n'est pas un utilisateur connecté qui regarde cela, tant pis
if (! is_user_logged_in ()):
revenir;
fin si;

// Supprime la méta valeur utilisateur "wpshout_found_this_page" pour l'utilisateur actuel
delete_user_meta (get_current_user_id (), 'wpshout_found_this_post');

// Appelez la fonction au début du processus de chargement de WordPress
add_action ('init', 'wpshout_make_sure_user_is_haunted_by_nag_message');

Création de metabox pour les méta utilisateur: pods d'utilisation

Cette partie de la discussion est pratique: quel est le meilleur moyen d’ajouter des champs méta utilisateur dans WordPress?

La réponse que je trouve est simple: les pods. (C’est le nom d’un plugin gratuit.)

Le plugin Pods occupe le rôle de méta utilisateur que les champs ACF (Advanced Custom Field) jouent pour les méta post. Bien sûr, les pods peuvent également jouer le rôle d’ACF dans les publications post méta, si vous préférez utiliser une seule chose.

Même l’interface d’ajout de méta-boîtes utilisateur de Pods ressemble beaucoup à celle d’ACF pour l’ajout de méta-boîtes de publication:

Ajouter une méta d'utilisateur WordPress personnalisée avec des pods

Que font les pods? Tout comme ACF, Pods n’ajoute ni ne crée aucune méta-valeur réelle. En d'autres termes, les pods ne sont pas changer les données dans ton wp_usermeta table de base de données. Au lieu de cela, il crée interfaces—Métaboxes — pour que les utilisateurs modifient eux-mêmes ces données.

Ainsi, le simple fait d’ajouter une méta-boîte d’utilisateur appelée «Sport préféré» ne confère à aucun utilisateur réel un sport préféré et ne crée pas non plus de «colonne» Sport préféré dans l’un de vos tableaux de base de données WordPress. C’est seulement quand on commence à faire du sport pour des utilisateurs individuels qui wp_usermeta commence à se remplir de données, en particulier des paires clé-valeur utilisées pour stocker des informations. Avoir un sens?

Avez-vous méta-utilisateur dans la vraie vie?

Vous venez de lire un jeu de mots assez rudimentaire et vous comprenez également le méta-système utilisateur de WordPress en général, notamment la procédure d’ajout de champs méta utilisateur dans WordPress, ainsi que la manière d’obtenir les métadonnées utilisateur – par défaut et personnalisées. Merci d'avoir lu!

Nous aimerions avoir de vos nouvelles dans les commentaires ci-dessous ou dans notre groupe Facebook.