WordPress: Letzte Kommentare direkt im Theme
Das Schweizer WordPress Magazin hat vor wenigen Tagen einen Artikel Veröffentlicht um die Letzten Kommentare des Blogs direkt im Theme zu intregrieren ohne das man dazu ein Plugin benötigt.
Der gezeigte ansatz ist schonmal gut gelungen, meiner Meinung nach aber nicht zufrieden stellen.
Es werden zwar die letzten Kommentare als “Auzug” Ausgegeben, jedoch ohne dem Kommentar-Autor.
Zudem ist der PHP-Snippet endlos lang, was einem die Übersicht innerhalb der “sidebar.php” (empfohlener einbau ort vom Schweizer Magazin) nimmt.
Schöner und schlanker kommt dort mein lösungs Vorschlag her. Der Code Snippet fügt den, beim Schweizer WordPress Magzin fehlenden, Autor des Kommentars hinzu.
Ich empfehle auch nicht die einbindung direkt in der sideba.php sondern eher das ganze über die functions.php und einen extra angelegten Template Tag.
Hier der Code:
Füge folgende Code in der im Theme-Ordner befindlichen functions.php hinzu oder erstelle eine neue functions.php, falls in deinen Theme keine vorhanden ist.
functions.php:
function recent_comments_theme () {
global $wpdb, $comments, $comment;
if ( !$number = (int) $options['number'] )
$number = 5;
else if ( $number < 1 )
$number = 1;
else if ( $number > 15 )
$number = 15;
$comments = $wpdb->get_results("SELECT comment_author, comment_author_url, comment_ID, comment_post_ID, comment_content FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT $number");
if ( $comments ) : foreach ($comments as $comment) :
echo '<li>' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="'. get_permalink($comment->comment_post_ID) . '#comment-' . $comment->comment_ID . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '<br />' . get_comment_excerpt() . '</li>';
endforeach; endif;
}
Mit diesem Code-Snipptet direkt in der functions.php haben wir einen neuen Template Tag für WordPress erstellt und können nun die ausgabe im Theme (z.B. in der Sidebar) einfügen.
Dazu einfach folgenden Code in die endsprechende Datei:
<h2><?php _e('Recent Comments')</h2>
<ul>
<?php if (function_exists('recent_comments_theme')) recent_comments_theme(); ?>
</ul>
Jetzt müssten wir an der Stelle wo der Tag eingefügt wurde, die letzten Kommentare sehen können.
Das ganze lässt sich natürlich noch mit CSS Gestallten und über den Code-Snippet den wir in der functions.php erweitern.
Ich habe den Snippet so angelegt, das er die letzten 5 Kommentare Anzeigt. Wäre gern mehr oder weniger haben will, muss nur den Wert beim ersten $number = 5; ändern. Zufinden ist er ganz oben im Code Snippet:
if ( !$number = (int) $options['number'] )
$number = 5;
Wer sich den Code in der functions.php etwas genau ansieht wird feststellen das wir alle Daten für den snippet aus der WordPress-Datenbank holen. Somit haben wir auch die möglichkeit weitere informationen wie “Datum oder Kommentar Status” abzufragen.
Artikel Informationen
Veröffentlicht am 22. Januar 2009 um 10:45 Uhr von Fabian.
Abgelegt unter WordPress.
Verwendete Schlagwörter: Datenbank, Erweitern, function.php, PHP, Snippet, SQL, Themes, WordPress.
Trackback URL | Kommentar-Feed .
Quelltext Anzeigen · Seite Drucken · Artikelnr. 133.
Ähnliche Artikel
Der Autor
Fabian Künzel wurde 1986 in Neuss geboren und lebt seit 1988 in der am Niederrhein liegenden Stadt Kleve.
Seit 2000 beschäftigt er sich mit dem Thema Webdesign und ist seit 2004 Freier Webworker.
Er unternimmt ausserdem viel mit seinen Freunden und seinem Hobby RC-Car das er seit Anfang 2009 nachgeht.
Mehr Über ihn erfahrt ihr in seinem Web-Profil
Mein Name ist Fabian Künzel. Ich bin 1986 in Neuss geboren und beschäftige mich nun seit mehr als 10 Jahren mit dem Thema Webdesign.
Folgende Kommentare wurden hinterlassen
[...] CSS und den CSS-Klassen aus WordPress erstellt. Auch eingeflossen ist die Funktion der “Letzten Kommentare direkt im Theme” worüber ich vor kurzen auch einen Artikel [...]
[...] http://fkblog.de/wp/wordpress-letzte-kommentare-direkt-im-theme/ [...]