Same comments on all posts

时间:2016-09-25 作者:Alex

我正在做一个自制的主题,我有一个问题,所有的评论都显示在所有的帖子上,而不是每个帖子只显示自己的评论。

我使用此代码显示注释:

<?php if (have_posts()): ?>
  <?php while (have_posts()): ?>
    <?php the_post(); ?>
    // The title, content and some other html here
    wp_list_comments(array( \'callback\' => \'comments_callback\'), get_comments());
  <?php endwhile; ?>
<?php endif; ?>
我试着把这条线放在回路内外,但仍然得到相同的结果。我在mu插件中获得了com comments\\u回调函数,其代码如下所示:

<?php
function comments_callback( $comment, $args, $depth ) {
    $GLOBALS[\'comment\'] = $comment;
    ?>
    <div class="the-comment">
      <div class="blog-comment-avatar">
        <i class="fa fa-user" aria-hidden="true"></i>
      </div>
      <div class="comment-text">
      <p class="text-secondary comment-author"><?php comment_author(); ?></p>
        <?php comment_text(); ?>
      </div>
    </div>
    <?php
}
?>
我做错了什么?

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

我能够重现这个问题。这是由代码中的循环引起的:

<?php if (have_posts()): ?>
  <?php while (have_posts()): ?>
将该标准回路替换为if ( have_comments() ) {..., 像这样:

<?php if ( have_comments() ) { ?>
    // The title, content and some other html here
    wp_list_comments(array( \'callback\' => \'comments_callback\'), get_comments());
<?php endif; ?>