Rask Tips Populære Innlegg Av Kommentar Count SQL Query i WordPress

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!


Abonner på vår YouTube-side for å se alle videoopplæringene!

Foretrekker å se denne videoen på Screenr?


SQL-spørringen

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):?> 
  • POST_TITLE; ?>
  • 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:

    • $ post-> id: Postens id
    • $ post-> post_title: Tittelen på innlegget
    • $ post-> comment_count: Antall kommentarer til det aktuelle innlegget.

    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!


    En siste ting

    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!