带有POST_STATUS‘PUBLIC’的GET_COMMENTS检索空结果

时间:2020-09-06 作者:MultiformeIngegno

这是我的循环:

<?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\' 不起作用?

2 个回复
最合适的回答,由SO网友:botondcs 整理而成

尝试\'post_status\' => \'publish\', 这应该可以奏效。

看见https://developer.wordpress.org/reference/functions/get_post_statuses/ 了解更多详细信息。

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\');
});
?>

相关推荐

WP Cron jobs loops infinitely

我正在编写一个脚本来添加一个命名的Cron作业,该作业可以更新单个用户,大约每5分钟运行一次。我的问题是,每隔一秒钟左右,每个用户都会反复运行作业。下面是我在函数中放置的代码。php文件。这是我第一次使用WordPress尝试WP Cron功能,我想知道我是否正确设置了作业。function so_custom_cron_schedule( $schedules ) { $schedules[\'every_5_minutes\'] = array( \'inter