Snabbtips Populära inlägg med kommentarantal SQL-fråga i WordPress

Du kanske har märkt att Tuts + -sidorna har ett avsnitt på hemsidan där vi listar de mest populära inläggen i månaden, enligt kommentarräkningen. Medan det finns många plugins, är det alltid bäst att skriva själva koden om du kan. För mycket abstraktion är aldrig en bra sak! Lyckligtvis, när vi lär oss hur man frågar WordPress 'databas blir uppgifter som detta en cinch!


Prenumerera på vår YouTube-sida för att titta på alla videohandledning!

Föredrar att se den här videon på Screenr?


SQL-frågan

För att fråga WordPress 'databas kan vi använda $ Wpdb-> get_results () metod. Som parameter skickar vi enkelt en SQL-fråga. I det här exemplet säger vi att vi bara vill visa en lista med populära inlägg i vårt sidofält. Vi kan använda följande fråga:

 $ pop = $ wpdb-> get_results ("VÄLJ ID, post_title, comment_count FRÅN $ wpdb-> prefix inlägg WHERE post_type =" post "ORDER BY comment_count DESC LIMIT 10");

id, post_title, och COMMENT_COUNT våra kolumner i databasen.

Eftersom WordPress tillåter dig att ange ett anpassat prefix för databas tabeller, måste vi hämta det prefixet dynamiskt, genom att använda Wpdb-> prefix inlägg. I det här fallet resulterar det i "wp_posts". Därefter måste vi se till att vi bara visar inlägg, och inte något annat, till exempel bilagor eller sidor. Äntligen BESTÄLLER vi BY comment_count. Det är meningen med allt detta rätt? Visa de mest kommenterade inläggen?

Nu när vår SQL-fråga har utförts kan vi helt enkelt använda en förklaring för att filtrera igenom resultaten och visa dem på sidan.

 $ pop = $ wpdb-> get_results ("VÄLJ ID, post_title, comment_count FRÅN $ wpdb-> prefix inlägg WHERE post_type =" post "ORDER BY comment_count DESC LIMIT 10"); foreach ($ pop som $ post):?> 
  • Post titel; ?>
  • Observera att variabeln $ post kommer att ha åtkomst till någon av de kolumner som vi hämtade. I vårt fall skulle vi ha tillgång till:

    • $ post-> id: Postens id
    • $ post-> post_title: Titeln på posten
    • $ post-> comment_count: Antalet kommentarer för det aktuella inlägget.

    Om du behöver permalinken kan du antingen välja SELECT från kolumnen "guid" eller du kan bara använda get_permalink ($ post-> id) metod och passera i postens id i enlighet därmed.

    När du har lärt dig hur du direkt kan interagera med WordPress-databasen, har du mycket kraft till ditt förfogande. Detta är bara toppen av isberget!


    En sista sak

    Denna handledning skapades för att visa hur man specifikt frågar WordPress 'tabeller i databasen. Sanning, från WordPress 2.9 kan du uppnå denna exakta effekt genom att använda query_posts () och passera orderby = 'COMMENT_COUNT'. Men kom ihåg att det hela slår till samma sak: att skicka en SQL-fråga till databasen.

    Några frågor? Tack för att du läser eller läser!