Du har kanskje lagt merke til at Tuts + -nettstedene har en seksjon på hjemmesiden der vi lister de mest populære innleggene i måneden, ifølge kommentartelling. Mens det er mange plugins tilgjengelig, er det alltid best å skrive koden selv om du kan. For mye abstraksjon er aldri en god ting! Heldigvis, når vi lærer å spørre WordPress 'database, blir oppgaver som dette en cinch!
Foretrekker å se denne videoen på Screenr?
For å søke på WordPress 'database kan vi bruke $ Wpdb-> get_results () metode. Som parameter, sender vi bare en SQL-spørring. I dette spesielle eksempelet, la oss si at vi bare vil vise en liste over populære innlegg i vår sidefelt. Vi kan bruke følgende spørring:
$ pop = $ wpdb-> get_results ("SELECT id, post_title, comment_count FRA $ wpdb-> prefix innlegg der post_type =" post "ORDER BY comment_count DESC LIMIT 10");
id, post_title, og COMMENT_COUNT våre kolonner i databasen.
Fordi WordPress lar deg sette et egendefinert prefiks for databasetabeller, må vi hente prefikset dynamisk ved å bruke Wpdb-> prefiks innlegg. I dette tilfellet resulterer det i "wp_posts". Deretter må vi sørge for at vi bare viser innlegg, og ikke noe annet, som vedlegg eller sider. Til slutt bestemmer vi BY comment_count. Det er poenget med alt dette riktig? Vis de mest kommenterte innleggene?
Nå som vår SQL-spørring er utført, kan vi bare bruke en foreach-setning for å filtrere gjennom resultatene, og vise dem på siden.
$ pop = $ wpdb-> get_results ("SELECT id, post_title, comment_count FRA $ wpdb-> prefix innlegg der post_type =" post "ORDER BY comment_count DESC LIMIT 10"); foreach ($ pop som $ post):?>
Vær oppmerksom på at $ post-variabelen vil ha tilgang til noen av de kolonnene vi hentet. I vårt tilfelle vil vi ha tilgang til:
Hvis du trenger permalinken, kan du enten også VELGE fra "guid" kolonnen, eller du kan bare bruke get_permalink ($ post-> id) metode, og passere i postens id i henhold til dette.
Når du har lært hvordan du kan kommunisere direkte med WordPress-databasen, har du så mye strøm til din disposisjon; Dette er bare toppen av isfjellet!
Denne opplæringen ble opprettet for å demonstrere hvordan du spesifikt søker WordPress 'tabeller i databasen. Sannferdig, fra WordPress 2.9, kan du oppnå denne eksakte effekten ved å bruke query_posts () og passerer orderby = 'COMMENT_COUNT'. Men husk at det hele koker ned til det samme: å sende en SQL-spørring til databasen.
Noen spørsmål? Takk for visning eller lesing!