Sfat rapid Mesaje populare după număr de comentarii SQL Query în WordPress

S-ar putea să fi observat că site-urile Tuts + au o secțiune de pe pagina de pornire unde vom lista cele mai populare posturi ale lunii, în funcție de numărul de comentarii. Deși există numeroase pluginuri disponibile, este întotdeauna bine să scrieți singur codul dacă puteți. Prea multă abstracție nu este niciodată un lucru bun! Din fericire, odată ce am învățat cum să interogăm baza de date WordPress ", astfel de sarcini devin cinch!


Abonați-vă la pagina noastră YouTube pentru a viziona toate tutorialele video!

Prefer să vizionați acest videoclip pe scenariu?


Interogarea SQL

Pentru a interoga baza de date WordPress, putem folosi $ Wpdb-> get_results () metodă. Ca parametru, pur și simplu transmitem o interogare SQL. În acest exemplu special, să presupunem că dorim să afișăm doar o listă de postări populare din bara noastră laterală. Putem folosi următoarea interogare:

 $ pop = $ wpdb-> get_results ("SELECT id, post_title, comment_count FROM $ wpdb-> prefix posturi WHERE post_type =" post "ORDER BY comment_count DESC LIMIT 10");

id, post_title, și COMMENT_COUNT coloanele noastre din baza de date.

Deoarece WordPress vă permite să setați un prefix personalizat pentru tabelele bazei de date, trebuie să preluăm din timp acest prefix dinamic, utilizând Wpdb-> prefix mesaje. În acest caz, rezultatul este "wp_posts". Apoi, trebuie să ne asigurăm că afișăm numai postări și nu orice altceva, cum ar fi atașamentele sau paginile. În cele din urmă, ORDER BY by comment_count. Acesta este punctul de vedere al tuturor acestor drepturi? Afișați cele mai comentate postări?

Acum că interogarea noastră SQL a fost executată, putem pur și simplu utiliza o instrucțiune foreach pentru a filtra rezultatele și a le afișa pe pagină.

 $ pop = $ wpdb-> get_results ("SELECT id, post_title, comment_count FROM $ wpdb-> prefix posturi WHERE post_type =" post "ORDER BY comment_count DESC LIMIT 10"); foreach ($ pop ca $ post):?> 
  • POST_TITLE; ?>
  • Rețineți că variabila $ post va avea acces la oricare dintre coloanele pe care le-am încărcat. În cazul nostru, vom avea acces la:

    • $ post-> id: Id-ul postului
    • $ post-> post_title: Titlul postului
    • $ post-> comment_count: Numărul de comentarii pentru postul respectiv.

    Dacă aveți nevoie de permalink, puteți alege, de asemenea, SELECT din coloana "guid", sau puteți folosi doar get_permalink ($ post-> id) , și treceți în id-ul postului în consecință.

    Odată ce ați învățat cum să interacționați direct cu baza de date WordPress, aveți apoi o mulțime de putere la dispoziția dumneavoastră; acesta este doar vârful aisbergului!


    Inca un lucru

    Acest tutorial a fost creat pentru a demonstra cum să interogați în mod specific tabelele WordPress din baza de date. Adevărat, ca și în WordPress 2.9, puteți obține acest efect exact folosind query_posts () și trecând orderby = 'COMMENT_COUNT“. Dar amintiți-vă, totul se reduce la același lucru: transmiterea unei interogări SQL către baza de date.

    Alte intrebari? Vă mulțumim pentru vizionare sau citire!

    Cod