我正在做一个自制的主题,我有一个问题,所有的评论都显示在所有的帖子上,而不是每个帖子只显示自己的评论。
我使用此代码显示注释:
<?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
}
?>
我做错了什么?
最合适的回答,由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; ?>