Eller besøk arkivet

Martin på nettet

Med Martins øyne

Siste kommentarer i WordPress

9. Mars 2006

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. :-)

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.

  11. Fare for det, ja. :-)

Si noe du også

Ved å trykke Post kommentar samtykker du i at du er kjent med personvernpolitikken og vil overholde retningslinjene for bruk av bekkelund.net.

Trackback og Pingback

Opphavsrett Martin Bekkelund © 1995-2009
Informasjon om opphavsrettRSSKontakt