Comment travailler avec les métadonnées de commentaires WordPress

Tout au long de cette série, nous avons examiné un certain nombre d’API de métadonnées proposées par WordPress. Cela inclut les API Post Meta et User Meta. Aujourd’hui, nous allons compléter la série en regardant la Meta API WordPress Comment.

Notez qu'il s'agit de l'API de métadonnées finale proposée par WordPress. Depuis WordPress 4.4, il existe maintenant une API de métadonnées de termes. Pour bien le comprendre, il est important de comprendre les taxonomies, les termes et leurs relations dans le contexte de WordPress. Dans une prochaine série, je couvrirai exactement cela.

Mais aujourd'hui, nous allons nous concentrer sur la gestion des métadonnées associées aux commentaires. Si vous n'avez encore rien lu dans cette série, je vous recommande de passer en revue ce que nous avons couvert jusqu'à présent..

Si vous êtes tous pris, alors commençons.

La méta API de commentaire WordPress

Tout au long de cette série, nous avons utilisé la définition de métadonnées WordPress comme base pour comprendre comment cette information est représentée dans le contexte de notre environnement..

Plus précisément, nous avons dit:

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..

En cohérence avec le reste du contenu que nous avons vu tout au long de cette série, cette définition s’applique aux métadonnées de commentaire tout comme aux métadonnées de publication et aux métadonnées d’utilisateur..

L'avantage, c'est qu'une fois que vous avez maîtrisé les différentes API de métadonnées que nous avons abordées, il devrait y avoir très peu de surprise quant au fonctionnement des autres fonctionnalités de métadonnées. Il peut y avoir quelques petites choses différentes selon l'API que vous utilisez, mais l'essentiel de la fonctionnalité sera le même..

Et, comme vous le verrez, cela continue d’être le cas avec l’API de métadonnées de commentaires..

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

Comme pour les autres API que nous avons examinées au cours de cette série, nous allons explorer quatre fonctions principales:

  • add_comment_meta
  • update_comment_meta
  • get_comment_meta
  • delete_comment_meta

À présent, vous savez probablement à quoi vous attendre en ce qui concerne, par exemple, les différences entre l’ajout de métadonnées de commentaire et la mise à jour de métadonnées de commentaire. Ou, disons, en supprimant les métadonnées de commentaire. 

Cela ne change pas le fait qu'il vaut la peine d'explorer chacune de ces fonctions d'API en détail pour s'assurer que nous avons couvert tout ce qu'il y a à savoir lorsque vous les utilisez..

Pour le reste de cet article, je suppose ce qui suit:

  • Vous exécutez un environnement de développement local avec un serveur Web, un serveur de base de données et PHP.
  • Vous avez une copie de WordPress installée.
  • Vous avez une copie de tutsplus-metadata.php mis en place dans le répertoire de votre thème, et il est inclus dans votre thème functions.php fichier.
  • Vous avez votre IDE et votre base de données de choix facilement disponibles.

Comme je l'ai utilisé tout au long des articles précédents, j'utilise les applications suivantes:

  • MAMP
  • Atome
  • Suite Pro
  • vingt-six

Enfin, toutes les métadonnées avec lesquelles nous allons travailler sont stockées dans le wp_commentmeta table de base de données, donc toutes les captures d'écran que vous voyez de la base de données seront de cette table particulière.

Contrairement à certaines des autres tables de métadonnées que nous avons vues, le wp_commentmeta table commence vide (en supposant que vous travaillez avec une version relativement récente de WordPress).

C’est bien, car cela nous donnera une table rase à utiliser lors de l’examen des diverses fonctions de l’API. Notez que pour tous les exemples ci-dessous, nous allons nous assurer que tout cela se passe sur le Bonjour le monde! poster. Cet article a l'ID de 1. Si vous souhaitez utiliser une autre page, remplacez simplement 1 avec l'identifiant du poste en question.

Avec tout cela en place, commençons par regarder ce qui est disponible.

Ajout de méta de commentaire

Pour commencer à ajouter des métadonnées à nos commentaires, il est important de jeter un coup d'œil à la wp_comments tableau pour voir quels commentaires existent déjà. Si vous travaillez avec une nouvelle installation de WordPress, vous verrez probablement un seul enregistrement:

Ceci est le commentaire par défaut fourni avec WordPress, et cela ira très bien pour les exemples que nous allons utiliser. 

Si, par contre, vous travaillez avec une base de données pleine de commentaires, pas de problème! Tout ce que vous avez besoin de savoir, c'est avec quel commentaire vous travaillez (via son ID), et assurez-vous que vous êtes cohérent avec le code que nous utilisons ci-dessous.

Comme pour les autres API que nous avons examinées dans cette série, l’ajout de métadonnées aux commentaires se présente sous deux formes: unique et non unique. Nous allons examiner les deux.

Ajout de métadonnées uniques

le add_comment_meta La fonction accepte trois paramètres et un quatrième paramètre facultatif. Si vous passez vrai en tant que quatrième paramètre, les métadonnées ne seront ajoutées que si la clé méta spécifiée n'existe pas.

Avoir un sens? Nous allons jeter un coup d'oeil. Tout d'abord, nous allons configurer une fonction qui ajoutera des métadonnées associées au premier commentaire (mais le fera uniquement sur le message ayant l'ID 1):

Notez que j'ai passé le vrai paramètre. Ainsi, chaque fois que j'actualiserai la page, WordPress verra que je souhaite que cette valeur soit unique afin d'éviter l'ajout d'informations supplémentaires à la table de base de données associée à cette clé méta..

Ajout de métadonnées non uniques

Si, par contre, je souhaite associer plusieurs valeurs à la même clé méta, je supprimerais le paramètre true. Par exemple, utilisez le code suivant:

Et puis actualisez la page, par exemple, trois fois. Si tout se passe comme prévu, vous pouvez voir trois nouveaux enregistrements, chacun contenant un nombre aléatoire tel que généré par l'appel de rand() dans l'argument de la méta valeur.

C'est assez facile de rester droit, non? Si vous voulez une valeur unique associée à une clé unique, passez vrai comme quatrième argument optionnel; sinon, ne rien spécifier.

Mise à jour de la méta de commentaire

Si vous souhaitez mettre à jour les métadonnées de commentaire existantes, il est important de connaître l'ID de commentaire, la clé méta et la valeur méta. Cela signifie que WordPress examinera la clé méta spécifiée et l'associera à la valeur méta spécifiée..

Si la méta-valeur existe, elle sera écrasée. Si la méta-valeur n'existe pas, elle sera créée. Notez dans cette dernière phrase que vous pouvez utiliser certaines fonctionnalités lors de l’ajout de métadonnées: Si vous souhaitez qu’une information unique soit écrite dans la table de métadonnées, vous pouvez utiliser: update_comment_meta et il l'écrira comme une valeur unique.

Cela peut entraîner un peu de code déroutant (puisqu'il lit comme s'il mettait à jour quelque chose qui n'existe pas), mais cela vous permet également de faire en sorte qu'un seul enregistrement existe pour la clé méta donnée..

Que se passe-t-il quand une méta-clé est associée à plusieurs méta-valeurs? Dans ce cas, vous devez connaître la valeur que vous souhaitez remplacer. Dans certains cas, vous pouvez savoir exactement ce que c'est. Dans d'autres cas, vous devrez peut-être récupérer les informations pour les trouver (ce que nous verrons dans la section suivante).

En supposant que nous voulions mettre à jour l'un des enregistrements que nous avons créés, comme l'un des nombres aléatoires que nous avons vus dans l'exemple ci-dessus, nous pouvons le rechercher à l'aide de la base de données frontale:

Et spécifiez-le comme valeur précédente dans le code suivant:

Ensuite, nous pouvons actualiser la page, consulter notre base de données et voir les modifications. Notez que le travail que nous venons de faire est pertinent pour un environnement de développement et n’est pas la manière dont vous vous occuperiez de le gérer en production..

Au lieu de cela, vous devrez peut-être exécuter une requête ou récupérer un ensemble de valeurs avant de les mettre à jour. Cela nous amène au sujet suivant.

Récupération de la méta de commentaire

Chaque fois que vous récupérez des métadonnées de commentaire, vous devez décider si vous souhaitez récupérer une valeur unique ou toutes les valeurs associées à la clé méta spécifiée..

Une autre façon de voir les choses est peut-être la suivante: Si plusieurs métadonnées ont été ajoutées avec la même clé méta (que nous avons couverte dans le Ajout de métadonnées uniques section ci-dessus), vous voudrez probablement récupérer la collection complète des enregistrements.

Si, par contre, vous ne voulez récupérer qu'un seul enregistrement parce que vous savez qu'il est unique ou qu'il a été créé avec le update_comment_meta fonction, alors vous voulez que WordPress vous le retourne en une seule valeur.

le get_comment_meta fonction nécessite trois arguments et un quatrième facultatif en fonction de ce que vous voulez récupérer.

Récupérer un tableau

Supposons que vous cherchiez à récupérer une collection de toutes les valeurs associées à une seule clé méta. Pour ce faire, vous appelez get_comment_meta et vous spécifiez l'ID de commentaire et la clé méta.

Dans le code ci-dessus, nous l’imprimons dans le navigateur Web, mais vous pourrez utiliser ces données comme vous le souhaitez une fois que vous les avez récupérées. La chose la plus importante à noter, cependant, est que la valeur est renvoyée sous forme de tableau..

Récupérer une valeur unique

Si vous souhaitez récupérer une valeur unique, il vous suffit de spécifier l'ID de commentaire et la clé méta dans le champ get_comment_meta une fonction. Si vous avez affaire à une clé méta avec plusieurs valeurs, la première valeur créée est celle qui sera renvoyée..

Par exemple, supposons que trois enregistrements soient associés à une clé méta et que vous ne souhaitiez extraire qu'une seule valeur. Votre code ressemblera à ceci: 

Et la valeur résultante ressemblera à ceci:

chaîne (9) "967432645"

Alternativement, si vous savez que les données sont uniques, le code aura toujours le même aspect que la valeur renvoyée..

La seule différence est que le premier exemple a été extrait d'un ensemble d'enregistrements multiples et que le deuxième exemple a été extrait d'un enregistrement unique. Notez également que si vous utilisez une valeur unique, elle vous sera toujours renvoyée sous forme de tableau, mais un tableau à index unique.. 

Ceci est important à noter car si vous envisagez de faire tout type de comparaison, en particulier avec une valeur d'un type différent, tel qu'un entier, vous devrez extraire la valeur du tableau et vous voudrez probablement taper conversion avant de faire une comparaison.

Suppression de la méta de commentaire

La suppression de métadonnées est une opération simple: elle nécessite l'ID de commentaire, une clé méta et une méta valeur facultative..

Si vous ne spécifiez pas la méta-valeur, tous les enregistrements associés à la clé méta seront supprimés. Si, toutefois, vous spécifiez la méta-valeur, seul cet enregistrement sera supprimé..

Supprimer des valeurs uniques

Pour les besoins de cet exemple, supposons que nous savons qu’il existe une seule métadonnée pour une méta-clé donnée. Cela signifie que la clé méta doit être unique pour chaque utilisateur. Elle utilise donc peut-être quelque chose comme un identifiant généré de manière unique, un horodatage ou quelque chose de similaire..

Pour supprimer une valeur unique, nous passons simplement l'ID de commentaire et la clé méta:

Avant d'exécuter ce code, la base de données devrait ressembler à ceci:

Après avoir actualisé la page, examinez la base de données et vous constaterez que l’enregistrement a été supprimé. La base de données doit ressembler à ceci:

Nous parlerons un peu plus des précautions à prendre lors de la suppression de données dans la section suivante..

Supprimer des valeurs non uniques

Dans d'autres situations, supposons qu'il existe plusieurs valeurs associées à une seule clé méta. Nous l'avons vu à plusieurs reprises tout au long de cet article. Si vous souhaitez supprimer tous les enregistrements associés à une clé méta, vous n'avez pas besoin de spécifier une valeur méta..

Autrement dit, si vous transmettez simplement un ID de commentaire et une clé méta au delete_comment_meta fonction, il supprimera toutes les métadonnées de commentaire. Ecrivez et exécutez le code suivant:

Actualisez votre page, puis passez en revue la base de données. S'il n'y a pas eu de problèmes, votre base de données devrait être libre de tous les enregistrements qui précédemment avaient cette méta clé:

Mais rappelez-vous que la suppression de données d'une base de données peut être dangereuse, en particulier si vous supprimez accidentellement quelque chose que vous n'avez jamais voulu supprimer. À cette fin, il est important de conserver les sauvegardes de votre base de données dans les environnements de production afin de pouvoir toujours les restaurer en cas de problème..

En outre, cela montre pourquoi il est si important de disposer d'un environnement de développement local et d'un environnement intermédiaire pour les tests avant de déployer le code dans un environnement de production..

Le code source complet

Comme fourni tout au long de cette série, voici une copie de tout le code source décrit dans cet article. Il est entièrement documenté et inclut des commentaires qui ne figurent pas dans certaines des sections ci-dessus..

Notez que si vous incluez ceci avec le code du reste des articles de la série, vous devrez faire attention. Puisque tout est enregistré avec le même crochet, vous pouvez vous retrouver avec des résultats étranges.

Pour lutter contre cela, je recommande l'un des deux scénarios suivants:

  1. Créez trois fichiers distincts: un pour chacun des types d'API de métadonnées que nous avons examinés..
  2. Commenter le add_filter appels, sauf ceux avec lesquels vous travaillez actuellement.

L'un ou l'autre facilitera l'utilisation de tout le code que nous avons couvert jusqu'à présent..

Conclusion

Que vous travailliez avec une API de métadonnées ou l'une des autres API, chaque développeur WordPress doit toujours avoir un accès rapide au Codex WordPress pour rechercher rapidement les API disponibles et leur utilisation..

Au fil de cette série, vous devriez voir comment l’API conçue autour des métadonnées est cohérente. Ceci constitue une API puissante et facile à utiliser pour étendre certaines des fonctionnalités de base de WordPress..

De plus, j'ai mentionné l'existence d'une autre API de métadonnées introduite dans WordPress 4.4. Je prévois de couvrir cela dans une prochaine série, mais il faudra examiner certaines des autres fonctionnalités qui en découlent.. 

Pour le moment, nous avons couvert de nombreux documents pour vous aider à améliorer vos compétences existantes dans WordPress. Jusqu'au prochain article, rappelez-vous que tous mes cours et tutoriels sont disponibles sur ma page de profil et que vous pouvez lire d'autres articles sur WordPress et le développement de WordPress sur mon blog.. 

WordPress a une économie active. Il existe des thèmes, des plugins, des bibliothèques et de nombreux autres produits qui vous aident à construire votre site et votre projet. La nature open source de la plate-forme en fait également une excellente option à partir de laquelle vous pouvez améliorer vos compétences en programmation. Quel que soit le cas, vous pouvez voir tout ce que nous avons disponible sur le marché Envato..

N'hésitez pas à me suivre également sur Twitter à @tommcfarlin, où je parlerai de diverses pratiques de développement de logiciels, dont beaucoup sont pertinentes pour le développement Web et beaucoup sont spécifiquement conçues pour WordPress.

Comme pour tous mes articles, n'hésitez pas à laisser des questions ou des commentaires dans le flux ci-dessous, et j'essaierai de répondre à chacun d'entre eux..

Ressources

  • Les champs personnalisés
  • add_comment_meta
  • update_comment_meta
  • get_comment_meta
  • delete_comment_meta
  • rand
  • écho
  • var_dump