Maîtriser WP_Comment_Query

Nous arrivons presque à la fin de notre série, "Mastering WP_Query", et il est temps de présenter les frères et sœurs du WP_Query classe. Dans la partie précédente, nous avons dépassé WP_User_Query, et dans cet article, nous allons en apprendre davantage sur la WP_Comment_Query classe.

Commençons!

Qu'est-ce que WP_Comment_Query?

Introduit dans WordPress version 3.1, le WP_Comment_Query La classe fait presque tout le travail lourd sur la requête de commentaires dans WordPress. Il permet l'interrogation de deux tables de base de données, wp_comments et wp_commentmeta, en essence.

Ici se trouve le squelette d'une boucle de requête de commentaire à l'aide du WP_Comment_Query classe:

requête ($ args); if ($ comments) foreach ($ comments as $ comment) // Faites ce que vous faites pour chaque commentaire ici.  else // Afficher le message car il n'y a pas de commentaire. ?>

Assez facile, non? Nous allons faire un exemple quelques étapes plus tard, mais voyons d’abord sous le capot.

Propriétés et méthodes de la classe WP_Comment_Query

Puisqu'il n'y a pas beaucoup de propriétés (variables publiques de la classe) et de méthodes (fonctions publiques de la classe), je les passerai rapidement en revue dans deux mini-sections. Et c'est parti!

Propriétés de WP_Comment_Query

contrairement à WP_Query qui a plus de 30 propriétés (25 d’entre elles étant les équivalents des balises conditionnelles), la WP_Comment_Query La classe n'a que cinq propriétés:

  • $ request: Une chaîne contenant la requête SQL.
  • $ meta_query: Un tableau pour faire une "méta requête" à l'aide de la WP_Meta_Query classe.
  • $ date_query: Un tableau pour faire une "requête de date" à l'aide de la WP_Date_Query classe.
  • $ query_vars: Un tableau des variables de la requête.
  • $ commentaires: Un tableau de commentaires récupérés avec la requête.

La seule méthode de WP_Comment_Query

Oui, il n'y a qu'une méthode à utiliser avec le WP_Comment_Query classe, et le nom de cette méthode est question().

le question() La méthode exécute la requête, en utilisant les paramètres que nous allons examiner dans la section suivante; mais voyons ce que nous obtenons dans un tableau lorsque nous utilisons cette méthode:

  • comment_ID: L'identifiant du commentaire.
  • comment_post_ID: L'identifiant de l'article auquel le commentaire est fait.
  • comment_author: Le nom de l'auteur du commentaire.
  • comment_author_email: L'adresse email de l'auteur du commentaire.
  • comment_author_url: URL du site de l'auteur du commentaire.
  • comment_author_IP: L'adresse IP du commentaire.
  • comment_date: La date du commentaire.
  • comment_date_gmt: Le commentaire au format d'heure GMT.
  • commentaire_contenu: Le contenu du commentaire.
  • comment_karma: Un champ de base de données inutilisé pour chaque commentaire peut être utilisé pour stocker, ainsi, le karma du commentaire.
  • comment_approved: Le statut d'approbation du commentaire.
  • comment_agent: L'agent utilisateur de l'auteur du commentaire.
  • comment_type: Le type de commentaire s'il s'agit d'un pingback ou un retracer.
  • comment_parent: Pour les commentaires imbriqués, il s'agit de l'ID du commentaire parent. Si c'est le commentaire de premier niveau, ce sera 0.
  • identifiant d'utilisateur: 0 si l'auteur du commentaire n'est pas inscrit sur le site, l'identifiant de l'utilisateur sinon.

Voyons les paramètres du WP_Comment_Query classe maintenant.

Paramètres de la classe WP_Comment_Query

Il y a 34 paramètres que nous pouvons utiliser avec WP_Comment_Query, mais ne les laissez pas vous effrayer: vous pouvez déjà les reconnaître grâce à leurs noms, et les autres sont également faciles à expliquer et à utiliser.

  • author_email (chaîne): Adresse email de l'auteur du commentaire.
  • auteur__in (array): identifiants d'auteur à inclure dans la requête.
  • auteur__not_in (array): identifiants d'auteur à exclure de la requête.
  • post_author__in (tableau): Identique à auteur__in.
  • post_author__not_in (tableau): Identique à auteur__not_in.
  • include_unapproved (tableau): tableau d'ID utilisateur ou d'adresses électroniques dont les commentaires doivent être renvoyés quel que soit leur statut d'approbation..
  • des champs (chaîne): champs de commentaire à renvoyer. Accepte 'ids' uniquement, utilisé pour renvoyer uniquement les ID de commentaire.
  • comment__in (array): ID de commentaire à inclure dans la requête.
  • comment__not_in (array): ID de commentaire à exclure de la requête.
  • karma (entier): Le score "karma" auquel renvoyer les commentaires correspondants. (Rappelles toi comment_karma de la section précédente?)
  • nombre (entier): le nombre maximum de commentaires à renvoyer.
  • décalage (entier): le nombre de commentaires à passer dans la requête.
  • commandé par (chaîne ou tableau): statut de commentaire ou tableau de statuts permettant de classer les résultats de la requête. Accepte toutes les clés renvoyées par le question() méthode, plus 'meta_value', 'meta_value_num', valeur de $ meta_key, FAUX, tableau vide ou 'aucun'. (Les trois derniers désactivent le COMMANDÉ PAR clause dans la requête.)
  • ordre (chaîne): Comment commander les commentaires récupérés-'ASC' pour monter ou 'DESC' pour descendre. (Défaut: 'DESC')
  • parent (entier): ID du commentaire parent pour récupérer les enfants.
  • post_id (entier): Identifiant de post pour récupérer les commentaires. (Défaut: 0)
  • post__in (tableau): identifiants de post à inclure dans les résultats.
  • post__not_in (tableau): ID de poste à exclure des résultats.
  • post_author (entier): Publier l'ID de l'auteur pour limiter les résultats par.
  • après le nom (chaîne de caractères): Post slug pour obtenir les commentaires de.
  • post_parent (integer): identifiant du post parent pour obtenir les commentaires.
  • Type de poste (chaîne de caractères): type de post pour obtenir les commentaires.
  • post_status (chaîne de caractères): statut de publication pour obtenir les commentaires de.
  • statut (chaîne): statut de commentaire pour limiter les résultats de. Accepte 'tenir', 'approuver', 'tout' ou un statut de commentaire personnalisé. (Défaut: 'tout')
  • type (chaîne ou tableau): un type de commentaire ou un tableau de types de commentaires pour filtrer la requête. Accepte 'commentaire', 'pings' (signifiant pingbacks et rétroliens combinés), ou types de commentaires personnalisés.
  • tapez (array): types de commentaires à inclure dans la requête.
  • type__not_in (array): types de commentaires à exclure de la requête.
  • identifiant d'utilisateur (entier): ID utilisateur pour inclure les commentaires d'un utilisateur spécifique.
  • chercher (chaîne de caractères): termes de recherche pour lesquels des commentaires correspondants.
  • compter (boolean): Retourne le nombre de commentaires (VRAI) ou un tableau de commentaires (FAUX). (Défaut: FAUX)
  • meta_key (chaîne): une clé méta personnalisée pour inclure uniquement les commentaires correspondants.
  • meta_value (chaîne): une méta-valeur personnalisée pour inclure uniquement les commentaires correspondants.
  • meta_query (tableau): un tableau de WP_Meta_Query clauses (que nous verrons dans la prochaine partie de cette série).
  • date_query (tableau): un tableau de WP_Date_Query clauses (que nous verrons dans la prochaine partie de cette série). (Défaut: NUL)

Remarque: Les valeurs par défaut de tous les paramètres sont vides, sauf indication contraire ci-dessus..

Un exemple rapide pour comprendre le fonctionnement de WP_Comment_Query

Cela ne me semblerait pas Achevée tutoriel si on ne voyait pas comment ça marche, le ferait-on? Pensons à un scénario simple et faisons un exemple rapide, puis.

Supposons que vous allez répertorier les commentaires de l'auteur du message et les classer par ID de commentaire (au lieu de dates de commentaire). Voici ce que vous faites:

post-> post_author; // arguments de configuration. $ args = array ('user_id' => $ post_author_id, 'orderby' => 'comment_ID'); // Requête de commentaire personnalisée. $ my_comment_query = new WP_Comment_Query; $ comments = $ my_comment_query-> query ($ args); // Vérifier les commentaires. if ($ comments) // Commence à lister les commentaires. écho '
    '; // Boucle sur les commentaires. foreach ($ comments en tant que $ comment) echo '
  • '. $ comment-> comment_content. '
  • '; // Arrête la liste des commentaires. écho '
'; else // Affiche le message si aucun commentaire n'est trouvé. écho '

'. __ (L'auteur du message n'a posté aucun commentaire., Tutsplus). '

'; ?>

Conseil rapide: Si vous voulez créer des requêtes de commentaires mais que vous voulez utiliser une interface graphique au lieu de taper du code, vous pouvez utiliser GenerateWP. WP_Comment_Query Générateur.

Tout emballer

Comme je l'ai dit, nous arrivons à la fin de cette série. Dans la prochaine partie, nous allons en apprendre davantage sur la WP_Meta_Query et WP_Date_Query cours ensemble.

Avez-vous quelque chose à ajouter à cet article? Partagez vos idées avec nous dans la section Commentaires ci-dessous. Et si vous avez aimé l'article, n'oubliez pas de le partager avec vos amis.

Si vous êtes intéressé par quelques scripts et plugins qui peuvent vous donner des fonctionnalités plus avancées avec votre système de commentaires, il existe une collection utile d'éléments sur Envato Market..