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!
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.
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!
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.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.
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.
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 '
'. __ ('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.
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.