I was working on a school website with student’s being given activities and I needed to facilitate communication with their teachers that was private.
First I tried to make a new type of comments with ACF, advanced custom fields, that proved troublesome because of needing to fetch them to specific users.
Then I messed around with only showing the users their own comments and stumbled across Ashfame’s solution and it is great and I thank him.
To display the comments in posts or pages there is a shortcode
[show_recent_comments count=15]
I had to tweak the code so that it showed only the current post’s comments and I didn’t need a permalink structure so this is what I added to functions.php
add_shortcode ( 'show_recent_comments', 'show_recent_comments_handler' );
function show_recent_comments_handler( $atts, $content = null )
{
extract( shortcode_atts( array(
"count" => 10,
"pretty_permalink" => 0
), $atts ));
$output = ''; // this holds the output
if ( is_user_logged_in() )
{
global $current_user;
get_currentuserinfo();
$args = array(
'user_id' => $current_user->ID,
'post_id' => $post_id = $GLOBALS['post']->ID, // ID is what post wanted
'number' => $count, // 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_content;
$output.= "</li>\n";
}
$output.= '</ul>';
}
}
else
{
$output.= "<h2>You should be logged in to see your comments. Make sense?</h2>";
$output.= '<h2><a href="'.get_settings('siteurl').'/wp-login.php?redirect_to='.get_permalink().'">Login Now →</a></h2>';
}
return $output;
}