我的搜索结果页面中有一个循环,如下所示:
<tr>
<th class="search-note" id="search-note">Last Note</th>
</tr>
<?php while ( have_posts() ) : the_post();
$rid = get_the_ID();
//Get most recent note
$args = array(
'post_id' => $rid,
'number' => '1',
'orderby' => 'date',
'order' => 'DESC'
);
//Date of last comment
$comments = get_comments($args);
foreach($comments as $comment) :
$lastComment = convert_date(($comment->comment_date)) . ' - <a href="' . get_comment_link( $comment->comment_ID ) . '">' . neat_trim(($comment->comment_content), 100) . '</a> -- <em>' . ($comment->comment_author) . '</em>';
endforeach;
<tr>
<td><?php echo $lastComment; ?></td>
</tr>
<?php endwhile; ?>
问题是,它获得的最后一条评论对于结果中的每一行都是相同的。因此,它获取了我想要的评论的所有正确信息,但它列出了对每行上没有评论的行的相同评论,而不是根据不同的post_id不同。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
好吧,首先我会检查$ lastComment是否实际设置,然后再尝试回复它。然后,我会在回应之后取消它。否则它将保留其前一次foreach循环的值。这样的事情,也许是:
<td><?php
if(isset($lastComment)) {
echo $lastComment;
unset($lastComment);
}
?></td>