Try:
<?php
$comments = get_comments('status=approve&number=5');
foreach($comments as $comm) :?>
<div class="index_row_entry <?=($i%2)?"color1":"color2";$i++;?>">
Post: <strong><?php echo get_the_title($comm->comment_post_ID);?></strong><br />
Who: <?php echo($comm->comment_author);?><br />
What was said: <?php echo($comm->comment_content);?><br />
Date: <?php echo($comm->comment_date);?><br />
</div>
<?php endforeach;?>
That uses the comment_post_ID field from the $comm array and passes it to the get_the_title function. For a fancier look, including a link to the comment permalink, use:
<a href="<?php echo get_permalink($comm->comment_post_ID);?>#comment-<?php comment_ID() ?>"><?php echo get_the_title($comm->comment_post_ID);?></a>
Hope that helps.
i would also like to know how to do this. the above response doesn’t work, as comment_post_ID
isn’t in the get_comments()
array.
there was a typo in the code by @mtw28 which might have stopped the code from working fully.
comment_post_ID
id indeed part of the wpdb comments table:
http://codex.wordpress.org/Database_Description#Table:_wp_comments
the fixed code below works for me:
<?php
$comments = get_comments('status=approve&number=5');
foreach($comments as $comm) :?>
<div class="index_row_entry">
Comment on: <strong><a href="<?php echo get_permalink($comm->comment_post_ID); ?>"><?php echo get_the_title($comm->comment_post_ID); ?></a></strong><br />
<?php echo($comm->comment_author);?>: <?php echo($comm->comment_content);?><br />
<?php echo($comm->comment_date);?><br />
</div>
<?php endforeach;?>
ps:
if you want to know all elements of the get_comments()
result, try and use:
<?php $comments = get_comments('status=approve&number=5');
print_r($comments); ?>
(@nathan12343)
10 years, 2 months ago
I want to be able to show the the most recent 5 comments on my homepage. Using get_comments I can do this and show the comment, author, date etc.
What I want to be able to do is show the title of (and link to) the post or page where the comment was made.
Any ideas?