The question:
I need to put the name of the author who wrote the post and I can’t find the solution.
EXAMPLE:
Rachel [06/03/21] : Commented in the post “How to be a Web Designer”, written by: POSTAGE AUTHOR – Test Comment
<?php
$args = array(
'user_id' => bp_current_user_id(),
'number' => 20, // how many comments to retrieve
'status' => 'approve'
);
$comments = get_comments( $args );
if ( $comments )
{
$output.= "<ul>n";
foreach ( $comments as $c )
{
$output.= '<li>';
$output.= $c->comment_author;
$output.= ' [';
$output.= mysql2date('d/m/y', $c->comment_date, $translate);
$output.= '] ';
$output.= ' : ';
$output.= '<a href="'.get_comment_link( $c->comment_ID ).'">';
$output.= get_the_title($c->comment_post_ID);
$output.= "</a>";
$output.= ' - ';
$output.= $comment->user_id;
$output.= $c->comment_content;
$output.= "</li>n";
}
$output.= '</ul>';
echo $output;
} else { echo "No comments made";}
?>
The Solutions:
Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.
Method 1
Not sure it’s the shortest way, but it works)
Get post author id
$post_author_id = get_post_field( 'post_author', $c->comment_post_ID );
Get author data by id
$post_author_display_name = get_the_author_meta( 'display_name', $post_author_id );
Try this shorter version
$output.= get_the_author_meta( 'display_name', get_post_field( 'post_author', $c->comment_post_ID ) );
Check documentation page which data is available with get_the_author_meta()
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0