Display all comments or recent comments per user on author page

I have author pages for each author and I want to see all of their comments (or all of their recent comments) if I click on their nickname. How can I do this? I tried the beneath code, but that does not show the unique comments per user… It just outputs all recent comments from everyone combined, but I don’t want that.

<?php
$author_email = get_the_author_meta( 'user_email' );
$args = array(
    'author_email' => $author_email,
    'number' => '10'
);
$comments = get_comments($args);
foreach($comments as $comment) :
    echo('<li class="comment">' . $somment->comment_content),'<h5><a href="https://wordpress.stackexchange.com/questions/99519/.get_permalink($comment->comment_post_ID).">', get_the_title($comment->comment_post_ID), '</a></h5>', '<time><em>' . $comment->get_comment_date . '</em></time>', '</li>';
endforeach;

?>

</ul></div>

2 Answers
2

your problem is using author_email, you need user_id:

i just use similar script.

<?php
    $args = array(
        'user_id' => get_the_author_meta('ID'),
        'number' => 10, // how many comments to retrieve
        'status' => 'approve'
        );

    $comments = get_comments( $args );

    if ( $comments )
    {
        $output.= "<ul>\n";
        foreach ( $comments as $c )
        {
        $output.= '<li>';
        $output.= '<a href="'.get_comment_link( $c->comment_ID ).'">';
        $output.= get_the_title($c->comment_post_ID);
        $output.= '</a>, Posted on: '. mysql2date('m/d/Y', $c->comment_date, $translate);
        $output.= "</li>\n";
        }
        $output.= '</ul>';

        echo $output;
    } else { echo "No comments made";}

?>

Leave a Comment