Padroneggiare WP_Comment_Query

Stiamo quasi arrivando alla fine della nostra serie, "Mastering WP_Query"ed è ora di introdurre i fratelli di WP_Query classe. Nella parte precedente, siamo andati oltre WP_User_Query, e in questo articolo, impareremo a conoscere il WP_Comment_Query classe.

Cominciamo!

Che cos'è WP_Comment_Query?

Introdotto in WordPress versione 3.1, il WP_Comment_Query classe fa quasi tutto il lavoro pesante sull'interrogazione dei commenti in WordPress. Permette l'interrogazione di due tabelle di database, wp_comments e wp_commentmeta, in sostanza.

Ecco il scheletro di un ciclo di query di commento usando il WP_Comment_Query classe:

query ($ args); if ($ comments) foreach ($ comments as $ comment) // Fai quello che fai per ogni commento qui.  else // Visualizza messaggio perché non ci sono commenti. ?>

Abbastanza facile, vero? Faremo un esempio dopo pochi passi, ma vediamo prima sotto il cofano.

Proprietà e metodi della classe WP_Comment_Query

Poiché non ci sono molte proprietà (variabili pubbliche della classe) e metodi (funzioni pubbliche della classe), le esaminerò rapidamente in due mini sezioni. Eccoci qui!

Proprietà di WP_Comment_Query

diversamente da WP_Query che ha più di 30 proprietà (25 delle quali equivalenti per i Tag condizionali), il WP_Comment_Query la classe ha solo cinque proprietà:

  • $ request: Una stringa che contiene la query SQL.
  • $ meta_query: Una matrice per creare una "meta query" con l'aiuto di WP_Meta_Query classe.
  • $ date_query: Una matrice per creare una "query di date" con l'aiuto di WP_Date_Query classe.
  • $ query_vars: Una matrice delle variabili della query.
  • $ commenti: Una serie di commenti recuperati con la query.

L'unico metodo di WP_Comment_Query

Sì, c'è solo un metodo da usare con il WP_Comment_Query classe, e il nome di quel metodo è query ().

Il query () il metodo esegue fondamentalmente la query, usando i parametri che passeremo nella prossima sezione; ma vediamo cosa otteniamo in un array quando usiamo questo metodo:

  • COMMENT_ID: L'ID del commento.
  • comment_post_ID: L'ID del post a cui viene fatto il commento.
  • COMMENT_AUTHOR: Il nome dell'autore del commento.
  • comment_author_email: L'indirizzo email dell'autore del commento.
  • comment_author_url: L'URL del sito Web dell'autore del commento.
  • comment_author_IP: L'indirizzo IP del commento.
  • comment_date: La data del commento.
  • comment_date_gmt: Il commento nel formato ora GMT.
  • COMMENT_CONTENT: Il contenuto del commento.
  • comment_karma: Un campo di database inutilizzato per ogni plugin di commento può usarlo per memorizzare, beh, il karma del commento.
  • comment_approved: Lo stato di approvazione del commento.
  • comment_agent: L'agente utente dell'autore del commento.
  • comment_type: Il tipo del commento se è a pingback o a rintracciare.
  • comment_parent: Per i commenti nidificati, questo è l'ID del commento principale. Se è il commento di alto livello, lo sarà 0.
  • ID utente: 0 se l'autore del commento non è registrato con il sito web, l'ID dell'utente altrimenti.

Vediamo i parametri del WP_Comment_Query classe ora.

Parametri della classe WP_Comment_Query

Ci sono 34 parametri che possiamo usare con WP_Comment_Query, ma non lasciare che ti spaventino: puoi già riconoscerli dai loro nomi, e gli altri sono altrettanto facili da spiegare e da usare.

  • email_autore (stringa): indirizzo email dell'autore del commento.
  • author__in (array): ID dell'autore da includere nella query.
  • author__not_in (array): ID autore da escludere dalla query.
  • post_author__in (matrice): uguale a author__in.
  • post_author__not_in (matrice): uguale a author__not_in.
  • include_unapproved (array): una serie di ID utente o indirizzi e-mail i cui commenti devono essere restituiti indipendentemente dal loro stato di approvazione.
  • i campi (stringa): campi di commenti da restituire. accetta 'id' solo, usato per restituire solo gli ID dei commenti.
  • comment__in (array): ID dei commenti da includere nella query.
  • comment__not_in (array): ID commenti da escludere dalla query.
  • karma (intero): Il punteggio "karma" per restituire i commenti corrispondenti per. (Ricorda comment_karma dalla sezione precedente?)
  • numero (intero): il numero massimo di commenti da restituire.
  • compensare (numero intero): il numero di commenti da passare nella query.
  • ordinato da (stringa o array): uno stato di commento o un array di stati per ordinare i risultati della query. Accetta tutte le chiavi restituite da query () metodo, oltre 'Meta_value', 'Meta_value_num', valore di $ meta_key, FALSE, matrice vuota o 'nessuna'. (Gli ultimi tre disabilitano il ORDINATO DA clausola nella query.)
  • ordine (stringa): come ordinare i commenti recuperati-'ASC' per ascendere o 'DESC' per discendere. (Predefinito: 'DESC')
  • genitore (intero): ID del commento principale per recuperare i bambini.
  • post_id (numero intero): post ID per recuperare i commenti. (Predefinito: 0)
  • post__in (array): post ID da includere nei risultati.
  • post__not_in (array): Post ID da escludere dai risultati.
  • post_author (numero intero): inserisci l'ID dell'autore per limitare i risultati.
  • POST_NAME (stringa): posta slug per ottenere commenti da.
  • post_parent (numero intero): ID post padre per ottenere commenti da.
  • post_type (stringa): tipo di post per ottenere commenti da.
  • post_status (stringa): stato Post per ottenere commenti da.
  • stato (stringa): stato dei commenti per limitare i risultati entro. accetta 'Hold', 'approvare', 'tutti' o uno stato di commento personalizzato. (Predefinito: 'tutti')
  • genere (stringa o array): un tipo di commento o una matrice di tipi di commenti per filtrare la query. accetta 'commento', 'ping' (ovvero pingback e trackback combinati) o tipi di commenti personalizzati.
  • digitare (array): tipi di commenti da includere nella query.
  • type__not_in (array): tipi di commenti da escludere dalla query.
  • ID utente (intero): ID utente per includere commenti di un utente specifico.
  • ricerca (stringa): cerca termini per ottenere commenti corrispondenti.
  • contare (booleano): restituisce il conteggio dei commenti (VERO) o una serie di commenti (FALSE). (Predefinito: FALSE)
  • meta_key (stringa): una meta chiave personalizzata per includere solo commenti corrispondenti.
  • meta_value (stringa): un valore meta personalizzato per includere solo commenti corrispondenti.
  • meta_query (array): un array di WP_Meta_Query clausole (che vedremo nella prossima parte di questa serie).
  • date_query (array): un array di WP_Date_Query clausole (che vedremo nella prossima parte di questa serie). (Predefinito: NULLO)

Nota: I valori predefiniti di tutti i parametri sono vuoti, se non diversamente specificato sopra.

Un rapido esempio per capire come funziona WP_Comment_Query

Non sarebbe come un completare tutorial se non vedessimo come funziona, vero? Pensiamo a uno scenario semplice e facciamo un rapido esempio, quindi.

Diciamo che stai per elencare i commenti fatti dall'autore del post e ordinare l'elenco per ID dei commenti (invece delle date dei commenti). Ecco cosa fai:

post-> post_author; // argomenti di installazione. $ args = array ('user_id' => $ post_author_id, 'orderby' => 'comment_ID'); // Domanda di commento personalizzata. $ my_comment_query = new WP_Comment_Query; $ comments = $ my_comment_query-> query ($ args); // Controlla i commenti. if ($ comments) // Inizia a elencare i commenti. eco '
    '; // Loop over comment. foreach ($ comments as $ comment) echo '
  • '. $ comment-> comment_content. '
  • '; // Interrompe l'elenco dei commenti. eco '
'; else // Visualizza il messaggio se non vengono trovati commenti. eco '

'. __ ('L'autore del post non ha pubblicato alcun commento.', 'Tutsplus'). '

'; ?>

Consiglio rapido: Se si desidera creare query di commenti ma si desidera utilizzare una GUI invece di digitare il codice, è possibile utilizzare GenerateWP WP_Comment_Query Generatore.

Avvolgere tutto

Come ho detto, stiamo arrivando alla fine di questa serie. Nella prossima parte, impareremo a conoscere il WP_Meta_Query e WP_Date_Query classi insieme.

Hai qualcosa da aggiungere a questo articolo? Condividi i tuoi pensieri con noi nella sezione commenti qui sotto. E se ti è piaciuto l'articolo, non dimenticare di condividerlo con i tuoi amici.

Se sei interessato ad alcuni script e plug-in che ti offrono funzionalità più avanzate con il tuo sistema di commenti, c'è un'utile raccolta di articoli sul mercato Envato.