Martin Bekkelund

En blogg om IT

Siste kommentarer i WordPress

09.03.06 • 11 kommentarer

Jeg får til stadighet henvendelser fra folk som lurer på hvordan jeg lister de siste kommentarene i webloggen min. Koden er relativt enkel, og et lappeteppe av forskjellige kodebiter jeg har funnet på nettet. Det har dessverre ikke lykkes meg i å finne opphavet til alle kodebitene, så jeg beklager herved til de som måtte ha bidratt til denne koden, og som ikke får sin behørige kreditering i koden.

Det forutsettes en viss innsikt i WordPress og hvordan du arbeider med WordPress-temaer for å ha glede av denne posten.

Jeg har ikke laget det som et tillegg (plugin), men som en kodebit du limer inn i filen “sidebar.php” i ditt tema. Finner jeg tid lager jeg en plugin av det en gang i fremtiden.

Koden:

  1. <?php
  2.  
  3. function get_recent_comments($no_comments = 5, $comment_lenth = 5, $before = ‘<li>’, $after = ‘</li>’, $show_pass_post = false, $comment_style = 1) {
  4. global $wpdb, $tablecomments, $tableposts;
  5. $request = "SELECT ID, comment_ID, comment_content, comment_date, comment_author, post_title FROM $tablecomments LEFT JOIN $tableposts ON $tableposts.ID=$tablecomments.comment_post_ID WHERE post_status = ‘publish’ ";
  6. if(!$show_pass_post) $request .= "AND post_password =” ";
  7. $request .= "AND comment_approved = ’1′ ORDER BY comment_ID DESC LIMIT $no_comments";
  8. $comments = $wpdb->get_results($request);
  9. $output = ”;
  10. foreach ($comments as $comment) {
  11. $comment_author = stripslashes($comment->comment_author);
  12. $comment_content = strip_tags($comment->comment_content);
  13. $comment_content = stripslashes($comment_content);
  14. $comment_date = $comment->comment_date;
  15. $words=split(" ",$comment_content);
  16. $comment_excerpt = join(" ",array_slice($words,0,$comment_lenth));
  17. $permalink = get_permalink($comment->ID)."#comment-".$comment->comment_ID;
  18. if ($comment_style == 1) {
  19. $post_title = stripslashes($comment->post_title);
  20. $output .= $before . ‘<span class="blogg_meny_siste_kommentar"><a href="’ . get_permalink($comment->ID) . ‘#comment-’ . $comment->comment_ID . ‘" title="Les post">’ . $comment_author . ‘ om<br />’ . $post_title .’</a></span>’ . $after;
  21. } else {
  22. $output .= $before . ‘<strong>’ . $comment_author . ‘:</strong> <a href="’ . $permalink;
  23. $output .= ‘" title="View the entire comment by ‘ . $comment_author.’">’ . $comment_excerpt.’</a>’ . $after;
  24. }
  25. }
  26. echo $output;
  27. }
  28.  
  29. ?>
  30.  
  31. <ul>
  32. <?php get_recent_comments(5); ?>
  33. </ul>

Dette kodestykket setter du inn i “sidebar.php” i ditt tema. Det skal fungere uten videre mekking. Har du litt nerdenykker kan du skru på koden selv. Forbedringer kan du jo poste som en kommentar.

Ønsker du å justere antallet kommentarer som vises justerer du det i denne linjen, ved å angi et annet tall:

  1. <ul>
  2. <?php get_recent_comments(5); ?>
  3. </ul>

Jeg anbefaler (for din egen del) at du setter det inn i en <div> og gir det en overskrift. I tillegg finnes det en klasse du kan benytte i stilsettet ditt.

Tilbakemeldinger tas selvfølgelig i mot med stor takk, og kan postes som en kommentar. :-)

Følg @MartinBekkelund på Twitter!

11 kommentarer

  1. Desverre bliver det rare sitat-tegn hvis man klipper og limer dette. Ta en titt på Preserve Code Formatting, en plugin som gjør at code forblir code (men du må nok fikse litt selv med den for å få linjenummer).

    Takk for god kode ellers :-D

  2. Jeg får det ikke til å funke. hele høyresiden bare forsvinner etter jeg har satt den inn… hmm..

  3. Koden skal være kompatibel med alle WordPress-versjoner fra og med 1.5. Jeg har riktignok ikke finlest den etter å ha kopiert den fra temaet mitt, men den skal være dønn lik.

    Akkurat nå har jeg ikke tilgang til originalkoden, men jeg skal prøve å få lagt ut en tekstfil for nedlasting i løpet av helgen.

  4. Det skyldes at WordPress er så lur at den erstatter alle ' med ‘ el ’… (det gjenstår å se hvis jeg klarer å lure WordPress å få med rett tegn i kommentaren min…)

  5. Bra jobbet, men vil også på det varmeste anbefale følgende plugin:
    http://blog.jodies.de/archiv/2004/11/13/recent-comments/

    “Recent Comments” fungerer ypperlig for å vise de siste kommentarene i WP.

  6. Har som du sikkert vet Martin ikke fått din til å fungere, men sannelig så fungerte recent-comments hos meg. Så takk til eirikso for tipset der!

  7. For de som eventuelt måtte ha problemer med klipp-og-lim har jeg publisert koden som en tekstfil.

  8. Om du har en annen “get_recent_comments”-plugin aktivert når du prøver å bruke denne funksjonen, vil hele høyresiden forsvinne.

  9. Ole Martin skrev:

    Om du har en annen “get_recent_comments”-plugin aktivert når du prøver å bruke denne funksjonen, vil hele høyresiden forsvinne.

    Det er klart. get_recent_comments er navnet på funksjonen, og må være unikt.

  10. Bare tenkte det var svaret på olem sitt problem lenger oppe. :) Men han har nok funnet ut av det til denne tid.

Har du synspunkter? Legg igjen en kommentar!

Ingen anonyme kommentarer! Ved å trykke Send kommentar samtykker du i at du er kjent med personvernpolitikken og vil overholde retningslinjene for bekkelund.net.

Abonner uten å kommentere

RSS og trackback

Med RSS kan du abonnere på nye kommentarer som postes til denne artikkelen.

Du kan legge igjen et trackback fra ditt eget nettsted ved å benytte trackback-adressen til denne artikkelen. Eventuelle tracback ser du under.

Flere artikler

Enda flere artikler? Besøk arkivet.

Bekkelund.net er en blogg av Martin Bekkelund, hvor han lufter sine tanker om IT og IT-politikk. Martin arbeider til daglig som seniorrådgiver, foredragsholder og skribent i IT-bransjen, hvor han veileder bedrifter og organisasjoner i strategisk bruk av IT. Les mer...

Facebook Twitter LinkedIn Flickr Vimeo Google Reader Martin Bekkelunds blogg Martin Bekkelunds RSS-kanal

© 1995-2012 Martin Bekkelund
OpphavsrettRSSKontakt