WP_Comment_Query beherrschen

Wir sind fast am Ende unserer Serie "Mastering" WP_Query", und es ist Zeit, die Geschwister der WP_Query Klasse. Im vorigen Teil sind wir noch einmal durchgegangen WP_User_Query, und in diesem Artikel werden wir etwas über das lernen WP_Comment_Query Klasse.

Lass uns anfangen!

Was ist WP_Comment_Query??

In WordPress Version 3.1 eingeführt, wird die WP_Comment_Query Die Klasse erledigt fast alles, um Kommentare in WordPress abzufragen. Es erlaubt die Abfrage von zwei Datenbanktabellen, wp_kommentare und wp_commentmeta, im Wesentlichen.

Hier ist die Skelett einer Kommentar-Abfrageschleife mit der WP_Comment_Query Klasse:

Abfrage ($ args); if ($ comments) foreach ($ comments als $ comment) // Machen Sie hier jeden Kommentar für jeden Kommentar.  else // Nachricht anzeigen, da keine Kommentare vorhanden sind. ?>

Ganz einfach, richtig? Wir werden ein paar Schritte später ein Beispiel machen, aber sehen wir zuerst unter die Haube.

Eigenschaften und Methoden der WP_Comment_Query-Klasse

Da es nicht viele Eigenschaften (öffentliche Variablen der Klasse) und Methoden (öffentliche Funktionen der Klasse) gibt, werde ich sie in zwei kleinen Abschnitten kurz durchgehen. Auf geht's!

Eigenschaften von WP_Comment_Query

nicht wie WP_Query die mehr als 30 Eigenschaften hat (25 davon sind die Entsprechungen für bedingte Tags), die WP_Comment_Query Klasse hat nur fünf Eigenschaften:

  • $ anfrage: Eine Zeichenfolge, die die SQL-Abfrage enthält.
  • $ meta_query: Ein Array, um eine "Meta-Abfrage" mit Hilfe der WP_Meta_Query Klasse.
  • $ date_query: Ein Array, um eine "Datumsabfrage" mit Hilfe von durchzuführen WP_Date_Query Klasse.
  • $ query_vars: Ein Array der Variablen der Abfrage.
  • $ Kommentare: Ein Array von Kommentaren, das mit der Abfrage abgerufen wurde.

Die einzige Methode von WP_Comment_Query

Ja, es gibt nur eine Methode für die Verwendung von WP_Comment_Query Klasse, und der Name dieser Methode lautet Abfrage().

Das Abfrage() Die Methode führt die Abfrage im Wesentlichen unter Verwendung der Parameter aus, die im nächsten Abschnitt durchlaufen werden. Aber lasst uns sehen, was wir in einem Array bekommen, wenn wir diese Methode verwenden:

  • comment_ID: Die ID des Kommentars.
  • comment_post_ID: Die ID des Beitrags, zu der der Kommentar gemacht wurde.
  • comment_author: Der Name des Kommentars.
  • comment_author_email: Die E-Mail-Adresse des Kommentars.
  • comment_author_url: Die URL der Website des Kommentars.
  • comment_author_IP: Die IP-Adresse des Kommentars.
  • comment_date: Das Kommentardatum.
  • comment_date_gmt: Der Kommentar im GMT-Zeitformat.
  • Kommentar_Inhalt: Der Inhalt des Kommentars.
  • comment_karma: Ein nicht verwendetes Datenbankfeld für jedes Kommentar-Plug-In kann damit das Karma des Kommentars speichern.
  • comment_approved: Der Genehmigungsstatus des Kommentars.
  • comment_agent: Der Benutzeragent des Kommentarautors.
  • comment_type: Der Typ des Kommentars, wenn es ein ist Pingback oder ein zurückverfolgen.
  • comment_parent: Bei verschachtelten Kommentaren ist dies die ID des übergeordneten Kommentars. Wenn es sich um den Kommentar auf oberster Ebene handelt, wird dies der Fall sein 0.
  • Benutzeridentifikation: 0 Wenn der Kommentarautor nicht bei der Website registriert ist, gibt die ID des Benutzers ansonsten an.

Lassen Sie uns die Parameter der sehen WP_Comment_Query Klasse jetzt.

Parameter der WP_Comment_Query-Klasse

Es gibt 34 Parameter, die wir verwenden können WP_Comment_Query, aber lassen Sie sich nicht erschrecken: Sie können sie bereits an ihren Namen erkennen, und die anderen sind ebenso einfach zu erklären und zu verwenden.

  • author_email (Zeichenfolge): E-Mail-Adresse des Autors.
  • author__in (Array): Autoren-IDs, die in die Abfrage aufgenommen werden sollen.
  • author__not_in (Array): Autoren-IDs, die von der Abfrage ausgeschlossen werden sollen.
  • post_author__in (Array): Gleich wie author__in.
  • post_author__not_in (Array): Gleich wie author__not_in.
  • include_unapproved (Array): Ein Array von Benutzer-IDs oder E-Mail-Adressen, deren Kommentare unabhängig vom Genehmigungsstatus zurückgegeben werden sollen.
  • Felder (Zeichenfolge): Kommentarfelder, die zurückgegeben werden sollen. Akzeptiert 'ids' nur, um nur die Kommentar-IDs zurückzugeben.
  • Kommentar__in (Array): Kommentar-IDs, die in die Abfrage aufgenommen werden sollen.
  • Kommentar__nicht_in (Array): Kommentar-IDs, die von der Abfrage ausgeschlossen werden sollen.
  • Karma (Ganzzahl): Die "Karma" - Punktzahl, für die passende Kommentare zurückgegeben werden sollen. (Merken comment_karma aus dem vorherigen Abschnitt?)
  • Nummer (Ganzzahl): Die maximale Anzahl von Kommentaren, die zurückgegeben werden sollen.
  • Versatz (Ganzzahl): Die Anzahl der Kommentare, die in der Abfrage übergeben werden sollen.
  • Sortieren nach (Zeichenfolge oder Array): Ein Kommentarstatus oder ein Array von Status, um die Abfrageergebnisse zu sortieren. Akzeptiert alle vom zurückgegebenen Schlüssel Abfrage() Methode plus 'meta_value', 'meta_value_num', Wert von $ meta_key, FALSCH, leeres Array oder 'keiner'. (Die letzten drei deaktivieren die SORTIEREN NACH Klausel in der Abfrage.)
  • Auftrag (Zeichenfolge): Wie werden abgerufene Kommentare bestellt?-'ASC' für aufsteigend oder 'DESC' zum Absteigen. (Standard: 'DESC')
  • Elternteil (Ganzzahl): ID des übergeordneten Kommentars zum Abrufen von Kindern.
  • post_id (Ganzzahl): Posten Sie die ID, um Kommentare abzurufen. (Standard: 0)
  • post__in (Array): Posten Sie IDs, die in die Ergebnisse aufgenommen werden sollen.
  • post__not_in (Array): Posten Sie IDs, um sie von den Ergebnissen auszuschließen.
  • post_author (Ganzzahl): Geben Sie die ID des Autors ein, um die Ergebnisse durch einzugrenzen.
  • Anschriftname (string): Post Slug, um Kommentare von zu erhalten.
  • post_parent (Ganzzahl): ID des übergeordneten Beitrags, um Kommentare von zu erhalten.
  • Post-Typ (Zeichenfolge): Geben Sie den Typ ein, um Kommentare zu erhalten.
  • Poststatus (Zeichenfolge): Status veröffentlichen, um Kommentare von zu erhalten.
  • Status (Zeichenfolge): Kommentieren Sie den Status, um die Ergebnisse zu begrenzen. Akzeptiert 'halt', 'genehmigen', 'alles' oder einen benutzerdefinierten Kommentarstatus. (Standard: 'alles')
  • Art (Zeichenfolge oder Array): Ein Kommentartyp oder ein Array von Kommentartypen zum Filtern der Abfrage. Akzeptiert 'Kommentar', 'pings' (dh kombinierte Pingbacks und Trackbacks) oder benutzerdefinierte Kommentartypen.
  • eintippen (Array): Kommentartypen, die in die Abfrage aufgenommen werden sollen.
  • type__not_in (Array): Kommentartypen, die von der Abfrage ausgeschlossen werden sollen.
  • Benutzeridentifikation (Ganzzahl): Benutzer-ID, um Kommentare eines bestimmten Benutzers aufzunehmen.
  • Suche (Zeichenfolge): Suchbegriffe für übereinstimmende Kommentare suchen.
  • Anzahl (boolean): Liefert die Anzahl der Kommentare (WAHR) oder eine Reihe von Kommentaren (FALSCH). (Standard: FALSCH)
  • meta_key (Zeichenfolge): Ein benutzerdefinierter Metaschlüssel, der nur übereinstimmende Kommentare enthält.
  • meta_value (Zeichenfolge): Ein benutzerdefinierter Metawert, der nur übereinstimmende Kommentare enthält.
  • meta_query (Array): Ein Array von WP_Meta_Query Klauseln (die wir im nächsten Teil dieser Serie sehen werden).
  • date_query (Array): Ein Array von WP_Date_Query Klauseln (die wir im nächsten Teil dieser Serie sehen werden). (Standard: NULL)

Hinweis: Die Standardwerte aller Parameter sind leer, sofern oben nicht anders angegeben.

Ein schnelles Beispiel, um zu verstehen, wie WP_Comment_Query funktioniert

Es würde sich nicht anfühlen Komplett Tutorial, wenn wir nicht sehen würden, wie es funktioniert, oder? Stellen wir uns ein einfaches Szenario vor und machen dann ein schnelles Beispiel.

Nehmen wir an, Sie listen die vom Autor des Beitrags abgegebenen Kommentare auf und ordnen die Liste nach Kommentar-IDs (anstelle der Datumsangaben). Folgendes tun Sie:

post-> post_author; // Argumente einrichten. $ args = array ('user_id' => $ post_author_id, 'orderby' => 'comment_ID'); // Benutzerdefinierte Kommentarabfrage. $ my_comment_query = new WP_Comment_Query; $ comments = $ my_comment_query-> query ($ args); // Überprüfe auf Kommentare. if ($ comments) // Startet die Kommentare. Echo '
    '; // Schleife über Kommentare. foreach ($ comments as $ comment) Echo '
  • '. $ comment-> comment_content '
  • '; // Stoppen Sie das Auflisten von Kommentaren. Echo '
'; else // Nachricht anzeigen, wenn keine Kommentare gefunden werden. Echo '

'. __ ('Der Autor des Beitrags hat keine Kommentare geschrieben.', 'Tutsplus'). '

'; ?>

Kurzer Tipp: Wenn Sie Kommentarabfragen erstellen möchten, jedoch eine GUI verwenden möchten, anstatt Code einzugeben, können Sie GenerateWPs verwenden WP_Comment_Query Generator.

Alles einpacken

Wie gesagt, wir kommen zum Ende dieser Serie. Im nächsten Teil werden wir etwas über das lernen WP_Meta_Query und WP_Date_Query Klassen zusammen.

Haben Sie etwas zu diesem Artikel hinzuzufügen? Teilen Sie Ihre Gedanken mit uns in den Kommentaren unten. Und wenn Ihnen der Artikel gefallen hat, vergessen Sie nicht, ihn mit Ihren Freunden zu teilen.

Wenn Sie sich für ein paar Skripte und Plugins interessieren, die Ihnen mit Ihrem Kommentarsystem erweiterte Funktionen bieten, gibt es eine nützliche Sammlung von Artikeln auf Envato Market.