Masterat WP_Comment_Query

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!

Ce este WP_Comment_Query?

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

Proprietățile și metodele din clasa WP_Comment_Query

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!

Proprietățile WP_Comment_Query

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.

Singura metodă din WP_Comment_Query

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.

Parametrii din clasa WP_Comment_Query

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.

Un exemplu rapid pentru a înțelege cum funcționează WP_Comment_Query

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 "
    „; // Culegeți comentariile. foreach (comentariile $ ca $ comment) echo '
  • ". $ comment-> comment_content. '
  • „; // Opriți comentariile la înscriere. echo "
„; altfel // Afișați mesajul dacă nu s-au găsit comentarii. 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.

Înveliți totul

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.

Cod