web-dev-qa-db-ja.com

Get_commentsを使用して混在ステータスのコメントを取得する方法

get_comments 関数を使って複数のstatusでコメントを取得する方法はありますか

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')));
3
akashivskyy

Wordpressコーデックスの時点では、そのような選択肢はありません。しかし、普通のPHPを使って2つ以上のコメント配列を組み合わせることができます。

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

2
feeela

ありえない。 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;
}

その他の例

2
fuxia