这是我的循环:
<?php $comments = get_comments(array(
\'status\' => \'approve\',
\'type\' => \'comment\',
\'number\' => 10,
\'post_status\' => \'public\'
)); ?>
<ul class="sidebar-comments">
<?php foreach ($comments as $comment)
{ ?>
<li>
<div><?php echo get_avatar($comment, $size = \'35\'); ?></div>
<em style="font-size:12px"><?php echo strip_tags($comment->comment_author); ?></em> (<a href="<?php echo get_option(\'home\'); ?>/?p=<?php echo ($comment->comment_post_ID); ?>/#comment-<?php echo ($comment->comment_ID); ?>">link</a>)<br>
<?php echo wp_html_excerpt($comment->comment_content, 35); ?>...
</li>
<?php
} ?>
</ul>
这总是给出一个空的结果(没有错误)。如果我删除
\'post_status\' => \'public\'
从get\\u comments参数来看,该函数可以工作,可以加载注释,但也可以加载来自私人帖子的注释(我不希望这样)。
你知道为什么吗\'post_status\' => \'public\'
不起作用?
SO网友:Cyclonecode
我不确定public
是有效状态,但您可以在实际循环之前筛选出私有注释:
<?php $comments = get_comments(array(
\'status\' => \'approve\',
\'type\' => \'comment\',
\'number\' => 10,
\'post_status\' => \'publish\'
));
$comments = array_filter($comments, function ($item)) {
return ($item->comment_status !== \'private\');
});
?>