Vi kommer nesten til slutten av serien vår, "Mastering WP_Query
", og det er på tide å introdusere søskenene til WP_Query
klasse. I forrige del gikk vi over WP_User_Query
, og i denne artikkelen skal vi lære om WP_Comment_Query
klasse.
La oss begynne!
Introdusert i WordPress versjon 3.1, den WP_Comment_Query
klassen gjør nesten alt det harde arbeidet med å spørre kommentarer i WordPress. Det tillater spørring av to databasetabeller, wp_comments
og wp_commentmeta
, i hovedsak.
Her er skjelett av en kommentarsøksløype ved hjelp av WP_Comment_Query
klasse:
spørring ($ args); hvis ($ kommentarer) foreach ($ kommentarer som $ kommentar) // Gjør hva du gjør for hver kommentar her. else // Vis melding fordi det ikke er noen kommentarer. ?>
Ganske enkelt, ikke sant? Vi kommer til å gjøre et eksempel bare noen få skritt senere, men la oss se under hetten først.
Siden det ikke er mange egenskaper (offentlige variabler i klassen) og metoder (offentlige funksjoner i klassen), går jeg raskt over dem i to mini-seksjoner. Her går vi!
I motsetning til WP_Query
som har mer enn 30 egenskaper (25 av dem er ekvivalenter for betingede etiketter), WP_Comment_Query
klassen har bare fem egenskaper:
$ forespørsel
: En streng som inneholder SQL-spørringen.$ meta_query
: En matrise for å lage en "meta query" ved hjelp av WP_Meta_Query
klasse.$ date_query
: En matrise for å lage en "dato forespørsel" ved hjelp av WP_Date_Query
klasse.$ query_vars
: En rekke variabler av spørringen.$ kommentarer
: En rekke kommentarer hentet med spørringen.Ja, det er bare en metode å bruke med WP_Comment_Query
klassen, og navnet på denne metoden er spørsmål()
.
De spørsmål()
Metoden utfører i utgangspunktet spørringen, ved hjelp av parametrene som vi skal gjennomgå i neste avsnitt; men la oss se hva vi får i en matrise når vi bruker denne metoden:
comment_ID
: Kommentarens ID.comment_post_ID
: Postens ID som kommentaren er laget til.COMMENT_AUTHOR
: Kommentarens forfatters navn.comment_author_email
: Kommentarforfatterens e-postadresse.comment_author_url
: Kommentarforfatterens nettadresse.comment_author_IP
: Kommentarens IP-adresse.COMMENT_DATE
: Kommentar dato.comment_date_gmt
: Kommentar i GMT tidsformat.COMMENT_CONTENT
: Innholdet i kommentaren.comment_karma
: Et ubrukt databasefelt for hver kommentar-plugin kan bruke dette til å lagre, vel, kommentarens karma.comment_approved
: Kommentarens godkjenningsstatus.comment_agent
: Kommentarforfatterens brukeragent.comment_type
: Kommentaren er typen hvis den er en Pingback
eller a spore tilbake
.comment_parent
: For nestede kommentarer, er dette opphavsrettens ID. Hvis det er toppnivån, vil dette være 0
.bruker-ID
: 0
hvis kommentarforfatteren ikke er registrert på nettstedet, brukerens ID ellers.La oss se parametrene til WP_Comment_Query
klassen nå.
Det er 34 parametere vi kan bruke med WP_Comment_Query
, men la dem ikke skremme deg: Du kan allerede kjenne dem fra navnene sine, og de andre er like lette å forklare og bruke.
author_email
(streng): Kommentar forfatterens e-postadresse.author__in
(array): Forfatter-IDer som skal inkluderes i spørringen.author__not_in
(array): Forfatter-IDer for å ekskludere fra spørringen.post_author__in
(array): Samme som author__in
.post_author__not_in
(array): Samme som author__not_in
.include_unapproved
(array): En rekke bruker-IDer eller e-postadresser hvis kommentarer skal returneres uavhengig av godkjenningsstatus.Enger
(streng): Kommentarfelt å returnere. godtar 'ids'
Bare brukt til å returnere bare kommentar-IDene.comment__in
(array): Kommentar ID-er for å inkludere i spørringen.comment__not_in
(array): Kommentar ID-er for å ekskludere fra spørringen.karma
(heltall): Karma-poengsummen for å returnere matchende kommentarer til. (Huske comment_karma
fra forrige seksjon?)Nummer
(heltall): Maksimalt antall kommentarer å returnere.offset
(heltall): Antall kommentarer som skal overføres i spørringen.rekkefølge etter
(streng eller array): En kommentarstatus eller en rekke statuser for å bestille søkeresultatene. Godtar alle nøklene som returneres fra spørsmål()
metode, pluss 'Meta_value'
, 'Meta_value_num'
, verdien av $ meta_key
, FALSK
, tom rekkefølge eller 'ingen'
. (De siste tre deaktiverer REKKEFØLGE ETTER
klausul i spørringen.)rekkefølge
(streng): Slik bestiller du hentede kommentarer-'ASC'
for stigende eller 'DESC'
for nedstigning. (Misligholde: 'DESC'
)forelder
(heltall): Foreldrekommenters ID for å hente barn.POST_ID
(heltall): Legg inn ID for å hente kommentarer. (Misligholde: 0
)post__in
(array): Legg inn ID-er for å inkludere i resultatene.post__not_in
(array): Legg inn IDer for å ekskludere fra resultatene.post_author
(heltall): Postforfatterens ID for å begrense resultatene etter.POST_NAME
(streng): Legg inn slug for å få kommentarer fra.post_parent
(heltall): Foreldrepost-ID for å få kommentarer fra.post_type
(streng): Posttype for å få kommentarer fra.post_status
(streng): Legg inn status for å få kommentarer fra.status
(streng): Kommentarstatus for å begrense resultatene etter. godtar 'holde'
, 'Godkjenne'
, 'alle'
eller en tilpasset kommentarstatus. (Misligholde: 'alle'
)type
(streng eller array): En kommentartype eller en rekke kommentartyper for å filtrere spørringen. godtar 'kommentar'
, 'ping'
(som betyr pingbacks og trackbacks kombinert), eller tilpassede kommentartyper.Skriv inn
(array): Kommentarstyper som skal inkluderes i spørringen.type__not_in
(array): Kommentar typer for å ekskludere fra spørringen.bruker-ID
(heltall): Bruker-ID for å inkludere kommentarer fra en bestemt bruker.Søke
(streng): Søkeord for å få matchende kommentarer til.telle
(boolsk): Gi tilbakemeldingstellingen (EKTE
) eller en rekke kommentarer (FALSK
). (Misligholde: FALSK
)meta_key
(streng): En egendefinert metatast for kun å inkludere samsvarende kommentarer.meta_value
(streng): En tilpasset metaværdi for å bare inkludere samsvarende kommentarer.meta_query
(array): En rekke av WP_Meta_Query
klausuler (som vi ser i neste del av denne serien).date_query
(array): En rekke av WP_Date_Query
klausuler (som vi ser i neste del av denne serien). (Misligholde: NULL
)Merk: Standardverdiene for alle parametrene er tomme, med mindre annet er angitt ovenfor.
Det ville ikke føles som en fullstendig opplæring om vi ikke så hvordan det fungerer, ville det? La oss tenke på et enkelt scenario og gjøre et raskt eksempel, da.
La oss si at du skal liste opp kommentarene fra postens forfatter og bestille listen etter kommentar-IDer (i stedet for kommentar datoer). Her er hva du gjør:
etter> post_author; // Oppsett argumenter. $ args = array ('user_id' => $ post_author_id, 'orderby' => 'comment_ID'); // Tilpasset kommentarforespørsel. $ my_comment_query = nytt WP_Comment_Query; $ comments = $ my_comment_query-> spørring ($ args); // Sjekk etter kommentarer. hvis ($ kommentarer) // Start oppføring kommentarer. ekko '
'. __ ('Postforfatteren har ikke postet noen kommentarer.', 'Tutsplus'). '
'; ?>Raskt tips: Hvis du vil bygge kommentarforespørsler, men vil bruke en GUI i stedet for å skrive kode, kan du bruke GenerateWPs WP_Comment_Query
Generator.
Som sagt, kommer vi til slutten av denne serien. I neste del skal vi lære om WP_Meta_Query
og WP_Date_Query
klasser sammen.
Har du noe å legge til i denne artikkelen? Del dine tanker med oss i kommentarfeltet nedenfor. Og hvis du likte artikkelen, ikke glem å dele den med vennene dine.
Hvis du er interessert i noen få skript og plugins som kan gi deg mer avansert funksjonalitet med kommentarsystemet, er det en nyttig samling av varer på Envato Market.