如何使用GET_COMMENTS获取混合状态的评论?

时间:2012-12-27 作者:akashivskyy

有没有一种方法可以获得多个评论status 使用get_comments 作用

比方说,我想两者兼得trashhold 评论。

对于帖子也可以这样做:

get_posts(array(\'post_status\' => \'draft,private,trash\'));
get_posts(array(\'post_status\' => array(\'draft\', \'private\', \'trash\')));
我想做的是:

get_comments(array(\'status\' => \'hold,trash\'));
get_comments(array(\'status\' => array(\'hold\', \'trash\')));

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

截至Wordpress codex,没有这样的选项。但您可以使用普通PHP将两个或多个注释数组组合在一起:

array_merge(
    get_comments( array( \'status\' => \'hold\' ) ),
    get_comments( array( \'status\' => \'trash\' ) )
);

http://codex.wordpress.org/Function_Reference/get_comments

http://php.net/array_merge

SO网友:fuxia

不可能。你必须过滤comments_clauses:

add_filter( \'comments_clauses\', \'wpse_77415_comment_clauses_filter\' );

function wpse_77415_comment_clauses_filter( $clauses )
{
    $clauses[\'where\'] .= " ( comment_approved = \'hold\' OR comment_approved = \'trash\' )";
    // maybe remove the original \'comment_approved\' statement …

    return $clauses;
}
更多示例:

结束