web-dev-qa-db-fra.com

Comment obtenir des commentaires avec un statut mixte en utilisant get_comments?

Existe-t-il un moyen d’obtenir des commentaires avec plusieurs variables status en utilisant la fonction get_comments ?

Supposons que je souhaite obtenir les deux commentaires trash et hold.

Il est possible de faire la même chose avec les posts:

get_posts(array('post_status' => 'draft,private,trash'));
get_posts(array('post_status' => array('draft', 'private', 'trash')));

Ce que je veux faire c'est:

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

À partir du codex Wordpress, cette option n’existe pas. Mais vous pouvez simplement combiner deux tableaux de commentaires ou plus en utilisant du PHP pur:

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

Pas possible. Vous devez filtrer 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;
}

Plus d'exemples:

2
fuxia