Die letzten Kommentare in einem Widget anzeigen – ohne Plugin

WordPress bietet von Haus aus ein Widget an, dass die letzten Kommentare anzeigt. Allerdings ist das relativ mager – es zeigt lediglich den Namen des Kommentators sowie den Titel der kommentierten Seite an.

Es gibt eine Vielzahl an Plugins, mit denen man Kommentare in allen Varianten per Widget anzeigen kann. Aber es ist wirklich einfach, die WordPress-Kommentare ohne den Einsatz eines Plugins in einem Widget auszugeben.

Und da es immer gut ist, wenn ihr euer WordPresssystem maximal schlank haltet zeige ich euch, wie ihr eure Kommentare in WordPress ohne den Einsatz eines Plugins in der Sidebar per Widget ausgeben könnt.

Ihr müsst lediglich einen Code in eure functions.php, eure style.css und in ein Textwidget setzen und fertig ist die Anzeige der letzten Kommentare ohne Plugin.

  1. Die Vorbereitung – die Textwidgets php-fähig machen:

    Damit der PHP-Quellcode in euren Widgets nicht einfach nur als Text angezeigt sondern auch funktional interpretiert wird, brauchen wir in der functions.php folgenden Quellcode:

    //Textwidget Php-fähig machen
    add_filter('widget_text', 'textwidget_kann_php', 99);
    
    function textwidget_kann_php($text) {
    if (strpos($text, '<' . '?') !== false) {
    ob_start();
    eval('?' . '>' . $text);
    $text = ob_get_contents();
    ob_end_clean();
    }
    return $text;
    }

    Diesen Quellcode habe ich bestimmt schon öfters erwähnt – daher kann es gut sein, dass ihr diesen Code schon eingebaut habt….

  2. Die Funktion für die Ausgabe der Kommentare in der functions.php:

    Hier findet ihr den Originalbeitrag von wplancer.com, der dieses fantastische Script geschrieben hat.
    Ich habe diesen jedoch für das Beispiel der Ideenlounge leicht modifiziert in meine functions.php eingebaut:

    function bg_recent_comments($no_comments = 6, $comment_len = 80, $avatar_size = 30) {
    $comments_query = new WP_Comment_Query();
    $comments = $comments_query->query( array( 'number' => $no_comments ) );
    $comm = '';
    if ( $comments ) : foreach ( $comments as $comment ) :
    $comm .= '<div class="wgin_comment"><a class="author" href="' . get_permalink( $comment->comment_post_ID ) . '#comment-' . $comment->comment_ID . '"><b>';
    $comm .= get_avatar( $comment->comment_author_email, $avatar_size );
    $comm .= get_comment_author( $comment->comment_ID ) . ': ';
    $comm .= '</b>' . strip_tags( substr( apply_filters( 'get_comment_text', $comment->comment_content ), 0, $comment_len ) ) . '...<div style="clear:both;"></div></a></div>';
    endforeach; else :
    $comm .= 'No comments.';
    endif;
    echo $comm;
    }

    Hier noch eine kurze Erläuterund zur rot markierten Zeile:

    • $no_comments: Anzahl der Kommentare
    • $comment_len: Anzahl der Zeichen, die als Vorschau des Kommentars angezeigt werden sollen
    • $avatar_size: Größe des Avatars
  3. Der Code für das Widget

    Fügt nun in eurer WordPress Administration unter Design >> Widgets ein neues Textwidget mit folgendem Text ein:

    <?php bg_recent_comments(); ?>
  4. Die Optik – kleine CSS Anpassungen

    Hier findet ihr meine CSS, die ich hier auf der Ideenlounge in der style.css verwendet habe – inklusive der Kommentare, was diese CSS genau machen:

    .wgin_comment {font-size:12px; margin-bottom:2px} 
    .wgin_comment a {text-decoration:none;padding:10px; 
    color:#000; background-color:#e0eaf0;
    display:block; border:none}
    .wgin_comment a:hover {color:#fff; background-color:#202023; }
    .wgin_comment img {float:right; margin-left:10px;}

    Die roten Farbwerte sind die Farben für die Hintergrundfarbe der Boxen im Normalzustand und bei Mouseover. Grün ist die Farbe des Textes.

Und das war es schon – der Zeitaufwand ist minimal und ihr habt ein Plugin weniger.
Probiert es einfach mal aus!

Kommentare

  1. Herr Hehn 22. Juni 2015 um 11:36 Uhr

    Hallo!
    Mich würde interessieren, wie ich in dem Widget „Letzte Kommentare“ denn die Bilder der Verfasser anzeigen lassen kann.
    Danke.

    • coloritas 23. Juni 2015 um 7:40 Uhr

      Hallo Herr Hehn,

      zuerst dachte ich – das ist ja ganz einfach – man füge einfach den Avatar des Autors hinzu – allerdings ist dies nicht der Fall, denn dann wird in dem kompletten Widget nur der Avatar des Autors des aktuell geöffneten Beitrags angezeigt. Auch sämtliche resetquery Methoden greifen nicht.

      Ich würde empfehlen, mal direkt bei dem Verfasser dieses Scripts nachzufragen – eventuell kann er weiter helfen.

      Viele Grüße
      Mirjam

Die Ideenlounge macht Pause, daher sind aktuell keine neuen KOmmentare möglich. Folgt mir auf Facebook, dann erfahrt ihr, wann es weiter geht.

Das könnte dich auch interessieren:



  • Folgt der Ideenlounge auf Facebook. RSS Feed
    Ja, auch diese Webseite verwendet Cookies. Hier erfahrt ihr alles zum Datenschutz