Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Comentarii recente în WordPress: afișarea ultimelor mesaje împreună cu avatarul Gravatar

Afișarea celor mai recente comentarii pe blog este o modalitate excelentă de a stimula interacțiunea și de a le arăta vizitatorilor că platforma ta se bucură de o comunitate activă. Dacă adaugi și avatarul Gravatar al fiecărui autor de comentariu, întreaga secțiune capătă un aspect modern și vizual atractiv.

Codul PHP pentru afișarea comentariilor recente cu avatar

Poți introduce următorul fragment de cod în fișierele șablonului tău (de exemplu în sidebar.php, footer.php sau într-o pagină dedicată). Funcția folosește API-ul standard WordPress get_comments() pentru a extrage doar mesajele aprobate și funcția nativă get_avatar() pentru imaginea de profil:

<?php
// Preluăm ultimele 5 comentarii aprobate
$recent_comments = get_comments(array(
    'number' => 5,
    'status' => 'approve',
    'type'   => 'comment',
));

if (!empty($recent_comments)) {
    echo '<ul class="recent-comments-list">';
    foreach ($recent_comments as $comment) {
        $comment_url = get_comment_link($comment->comment_ID);
        $post_title  = get_the_title($comment->comment_post_ID);
        $author_name = esc_html($comment->comment_author);
        
        echo '<li class="recent-comment-item">';
        
        // Avatarul utilizatorului (dimensiune 48x48 px)
        echo '<div class="comment-avatar">';
        echo '<a href="' . esc_url($comment_url) . '" title="' . esc_attr($author_name . ' | ' . $post_title) . '">';
        echo get_avatar($comment->comment_author_email, 48);
        echo '</a>';
        echo '</div>';
        
        // Detalii despre autor și articol
        echo '<div class="comment-details">';
        echo '<span class="comment-author"><a href="' . esc_url($comment_url) . '">' . $author_name . '</a></span> ';
        echo '<span class="comment-article">la articolul <a href="' . esc_url(get_permalink($comment->comment_post_ID)) . '">' . esc_html($post_title) . '</a></span>';
        echo '</div>';
        
        echo '</li>';
    }
    echo '</ul>';
}
?>

Variantă alternativă prin interogare directă în baza de date ($wpdb)

Dacă preferi o interogare directă pe tabelele WordPress folosind clasa globală $wpdb, structura funcțională este similară:

<?php
global $wpdb;

$query = "SELECT * FROM {$wpdb->comments} 
          WHERE comment_approved = '1' 
          ORDER BY comment_date DESC 
          LIMIT 5";

$comments = $wpdb->get_results($query);

if ($comments) {
    echo '<ul class="recent-comments-list">';
    foreach ($comments as $comment) {
        $comment_url = get_permalink($comment->comment_post_ID) . '#comment-' . $comment->comment_ID;
        $author_name = esc_html($comment->comment_author);
        
        echo '<li>';
        echo '<div class="comment-avatar">';
        echo '<a href="' . esc_url($comment_url) . '">' . get_avatar($comment->comment_author_email, 48) . '</a>';
        echo '</div>';
        echo '<div class="comment-meta">';
        echo 'Comentariu de <strong><a href="' . esc_url($comment_url) . '">' . $author_name . '</a></strong>';
        echo '</div>';
        echo '</li>';
    }
    echo '</ul>';
}
?>

Stilizare CSS recomandată

Pentru a alinia avatarul și textul comentariului într-un mod ordonat, adaugă în fișierul style.css al temei următoarele reguli:

.recent-comments-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.recent-comments-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.recent-comments-list .comment-avatar img {
    border-radius: 50%;
    display: block;
}
.recent-comments-list .comment-details {
    font-size: 0.95em;
    line-height: 1.4;
}

Lasă un comentariu