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:
- <?php
-
- function get_recent_comments($no_comments = 5, $comment_lenth = 5, $before = ‘<li>’, $after = ‘</li>’, $show_pass_post = false, $comment_style = 1) {
- global $wpdb, $tablecomments, $tableposts;
- $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’ ";
- if(!$show_pass_post) $request .= "AND post_password =” ";
- $request .= "AND comment_approved = ‘1′ ORDER BY comment_ID DESC LIMIT $no_comments";
- $comments = $wpdb->get_results($request);
- $output = ”;
- foreach ($comments as $comment) {
- $comment_author = stripslashes($comment->comment_author);
- $comment_content = strip_tags($comment->comment_content);
- $comment_content = stripslashes($comment_content);
- $comment_date = $comment->comment_date;
- $words=split(" ",$comment_content);
- $comment_excerpt = join(" ",array_slice($words,0,$comment_lenth));
- $permalink = get_permalink($comment->ID)."#comment-".$comment->comment_ID;
- if ($comment_style == 1) {
- $post_title = stripslashes($comment->post_title);
- $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;
- } else {
- $output .= $before . ‘<strong>’ . $comment_author . ‘:</strong> <a href="’ . $permalink;
- $output .= ‘" title="View the entire comment by ‘ . $comment_author.’">’ . $comment_excerpt.’</a>’ . $after;
- }
- }
- echo $output;
- }
-
- ?>
-
- <ul>
- <?php get_recent_comments(5); ?>
- </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:
- <ul>
- <?php get_recent_comments(5); ?>
- </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.
Abonner på kommentarer til denne artikkelen, alle kommentarer eller nye artikler.
Legg igjen trackback fra din egen side.
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
Kommentar av TyskJohan — 9. Mars 2006 21:29
Jeg får det ikke til å funke. hele høyresiden bare forsvinner etter jeg har satt den inn… hmm..
Kommentar av olem — 9. Mars 2006 23:26
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.
Kommentar av Martin — 9. Mars 2006 23:35
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…)
Kommentar av TyskJohan — 10. Mars 2006 1:46
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.
Kommentar av eirikso — 10. Mars 2006 11:42
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!
Kommentar av Espen — 14. Mars 2006 9:09
For de som eventuelt måtte ha problemer med klipp-og-lim har jeg publisert koden som en tekstfil.
Kommentar av Martin — 14. Mars 2006 10:42
Om du har en annen “get_recent_comments”-plugin aktivert når du prøver å bruke denne funksjonen, vil hele høyresiden forsvinne.
Kommentar av Ole Martin — 25. Mars 2007 12:56
Ole Martin skrev:
Det er klart.
get_recent_commentser navnet på funksjonen, og må være unikt.Kommentar av Martin — 26. Mars 2007 14:31
Bare tenkte det var svaret på olem sitt problem lenger oppe.
Men han har nok funnet ut av det til denne tid.
Kommentar av Ole Martin — 26. Mars 2007 21:51
Fare for det, ja.
Kommentar av Martin — 26. Mars 2007 22:45