Ne apropiem aproape de finalul seriei noastre, "Mastering WP_Query
", și este timpul să-i introducem pe frații și frații WP_Query
clasă. În partea anterioară, am trecut peste WP_User_Query
, și în acest articol, vom afla despre WP_Comment_Query
clasă.
Sa incepem!
Prezentat în WordPress versiunea 3.1, WP_Comment_Query
clasa face aproape toate lucrările grele privind interogarea comentariilor în WordPress. Permite interogarea a două tabele de baze de date, wp_comments
și wp_commentmeta
, în esență.
Iată-l schelet a unei bucăți de interogare a comentariilor utilizând WP_Comment_Query
clasă:
interogare ($ args); dacă ($ comments) foreach ($ comments as $ comment) // Fă ce faci pentru fiecare comentariu aici. altfel // Afișați mesajul deoarece nu există comentarii. ?>
Destul de ușor, nu? Vom face un exemplu la câțiva pași mai târziu, dar să vedem mai întâi sub capotă.
Deoarece nu există multe proprietăți (variabile publice ale clasei) și metode (funcții publice ale clasei), voi trece repede în două mini-secțiuni. Începem!
Spre deosebire de WP_Query
care are mai mult de 30 de proprietăți (25 dintre ele fiind echivalente pentru etichete condiționate), WP_Comment_Query
clasa are doar cinci proprietăți:
cerere $
: Un șir care conține interogarea SQL.$ meta_query
: Un matrice pentru a face o "interogare meta" cu ajutorul WP_Meta_Query
clasă.$ date_query
: Un matrice pentru a face o "interogare de dată" cu ajutorul WP_Date_Query
clasă.$ query_vars
: Un șir de variabile ale interogării.$ comentarii
: O serie de comentarii primite cu interogarea.Da, există doar o singură metodă de a utiliza cu WP_Comment_Query
clasa, iar numele metodei este query ()
.
query ()
metoda execută în esență interogarea, utilizând parametrii pe care le vom trece în secțiunea următoare; dar să vedem ce obținem într-o matrice atunci când folosim această metodă:
comment_ID
: ID-ul comentariului.comment_post_ID
: ID-ul postului la care se face comentariul.COMMENT_AUTHOR
: Numele autorului comentariului.comment_author_email
: Adresa de e-mail a autorului comentariului.comment_author_url
: Adresa URL a site-ului autorului comentariului.comment_author_IP
: Adresa IP a comentariilor.COMMENT_DATE
: Data comentariu.comment_date_gmt
: Comentariul în format GMT.COMMENT_CONTENT
: Conținutul comentariului.comment_karma
: Un câmp bază de date neutilizat pentru fiecare comentariu-plugin-uri poate folosi acest lucru pentru a stoca, bine, karma comentariului.comment_approved
: Statutul de aprobare al comentariului.comment_agent
: Agentul utilizator al autorului comentariului.comment_type
: Tipul comentariului dacă este a Pingback
sau a Trackback
.comment_parent
: Pentru comentariile imbricate, acesta este ID-ul comentariului părintelui. Dacă este vorba de comentariul de nivel superior, acesta va fi 0
.numele de utilizator
: 0
în cazul în care autorul comentariului nu este înregistrat pe site-ul web, în caz contrar numele utilizatorului.Să vedem parametrii WP_Comment_Query
clasa acum.
Există 34 de parametri pe care îi putem folosi WP_Comment_Query
, dar nu-i lăsați să te sperie: îi poți recunoaște deja de la numele lor, iar ceilalți sunt la fel de ușor de explicat și de folosit.
author_email
(șir): autorul comentariului adresa de e-mail.author__in
(array): ID-urile de autor pentru a fi incluse în interogare.author__not_in
(array): ID-urile de autor pentru a exclude din interogare.post_author__in
(matrice): La fel author__in
.post_author__not_in
(matrice): La fel author__not_in
.include_unapproved
(array): o serie de ID-uri de utilizator sau adrese de e-mail ale căror comentarii trebuie returnate indiferent de statutul lor de aprobare.câmpuri
(șir): Câmpurile de comentariu pentru a reveni. acceptă „id-uri“
numai, folosit pentru a returna numai ID-urile de comentarii.comment__in
(array): ID-urile de comentariu care trebuie incluse în interogare.comment__not_in
(matrice): ID-urile de comentariu pentru a exclude din interogare.Karma
(intreg): Scorul "karma" pentru a returna comentariile potrivite pentru. (Tine minte comment_karma
din secțiunea anterioară?)număr
(număr întreg): numărul maxim de comentarii pentru a reveni.ofset
(număr întreg): Numărul de comentarii care trebuie transmise în interogare.orderby
(șir sau matrice): o stare de comentariu sau o serie de stări pentru a ordona rezultatele interogării. Acceptă toate cheile returnate de la query ()
metoda, plus 'Meta_value'
, 'Meta_value_num'
, valoarea $ meta_key
, FALS
, galeria goală sau 'nici unul'
. (Ultimele trei dezactivați COMANDA DE LA
clauza din interogare.)Ordin
(șir): Cum să comandați comentariile preluate-'ASC'
pentru ascensiune sau 'DESC'
pentru coborâre. (Mod implicit: 'DESC'
)mamă
(număr întreg): ID-ul comentariului părinte pentru a prelua copiii.POST_ID
(număr întreg): ID-ul postului pentru a prelua comentarii. (Mod implicit: 0
)postează în
(array): Identificați ID-urile care trebuie incluse în rezultate.post__not_in
(array): Trimiteți ID-uri pentru a exclude din rezultate.post_author
(intreg): ID-ul autorului postului pentru a limita rezultatele prin.POST_NAME
(șir): Post slug pentru a obține comentarii de la.post_parent
(număr întreg): ID-ul postului părinte pentru a primi comentarii de la.post_type
(șir): Tip post pentru a obține comentarii de la.post_status
(șir): Postați postarea pentru a primi comentarii de la.stare
(șir): Starea comentariului pentru a limita rezultatele prin. acceptă 'Hold'
, 'aproba'
, 'toate'
sau un statut de comentariu personalizat. (Mod implicit: 'toate'
)tip
(șir sau matrice): Un tip de comentariu sau un șir de tipuri de comentarii pentru filtrarea interogării. acceptă 'cometariu'
, „ping-uri“
(adică pingbacks și trackback-uri combinate) sau tipuri personalizate de comentarii.introduceți
(matrice): tipurile de comentarii care trebuie incluse în interogare.type__not_in
(matrice): Tipurile de comentarii pentru a exclude din interogare.numele de utilizator
(număr întreg): ID-ul utilizatorului pentru a include comentariile unui anumit utilizator.căutare
(șir): Termeni de căutare pentru a obține comentariile potrivite pentru.numara
(boolean): returnați numărul de comentarii (ADEVĂRAT
) sau o serie de comentarii (FALS
). (Mod implicit: FALS
)meta_key
(șir): o cheie meta personalizată pentru a include numai comentariile care se potrivesc.meta_value
(șir): o valoare meta personalizată pentru a include doar comentariile care se potrivesc.meta_query
(matrice): o matrice de WP_Meta_Query
clauze (pe care le vom vedea în următoarea parte a acestei serii).date_query
(matrice): o matrice de WP_Date_Query
clauze (pe care le vom vedea în următoarea parte a acestei serii). (Mod implicit: NUL
)Notă: Valorile implicite ale tuturor parametrilor sunt goale, cu excepția cazului în care se prevede altfel mai sus.
Nu ar simți ca a complet tutorial dacă nu am vedea cum funcționează, nu-i așa? Să ne gândim la un scenariu simplu și să facem un exemplu rapid atunci.
Să presupunem că veți lista comentariile făcute de autorul postării și veți ordona lista cu ID-urile comentariilor (în loc de datele de comentariu). Iată ce faceți:
post-> post_author; // Argumentele pentru configurare. $ args = array ('user_id' => $ post_author_id, 'orderby' => 'comentariu_ID'); // interogare personalizată. $ my_comment_query = nou WP_Comment_Query; $ comments = $ my_comment_query-> interogare ($ args); // Verificați pentru comentarii. dacă ($ comentarii) // Începe înscrierea comentariilor. echo "
". __ ("Autorul postului nu a postat comentarii", "tutsplus"). '
„; ?>Sfat rapid: Dacă doriți să creați interogări de comentarii, dar doriți să utilizați un GUI în loc să tastați cod, puteți utiliza GenerateWP WP_Comment_Query
Generator.
După cum am spus, ajungem la sfârșitul acestei serii. În următoarea parte, vom afla despre WP_Meta_Query
și WP_Date_Query
clase împreună.
Aveți ceva de adăugat la acest articol? Împărtășiți-vă gândurile cu noi în secțiunea Comentarii de mai jos. Și dacă ți-a plăcut articolul, nu uita să îl împarți cu prietenii tăi.
Dacă sunteți interesat de câteva script-uri și plugin-uri care vă pot oferi funcționalitate mai avansată cu sistemul dvs. de comentare, există o colecție utilă de elemente de pe Envato Market.