web-dev-qa-db-fra.com

comment trouver les identifiants de tous les commentateurs dans un post

Existe-t-il une fonction dans wordpress qui saisit tous les utilisateurs (identifiants d’utilisateur) qui ont commenté un message? J'ai le post id disponible.

1
Poulomi Nag

La réponse à get_comments () de Poulomi Nag est correcte. Ce sera un peu plus efficace.

global $wpdb, $post;
$query = sprintf("SELECT user_id
                    FROM {$wpdb->comments}
                    JOIN {$wpdb->posts} ON {$wpdb->posts}.ID = {$wpdb->comments}.comment_post_ID
                    WHERE comment_post_ID = %d
                    AND comment_approved = '1'",
                  $post->ID);
$authors = $wpdb->get_col($query);
$authors = array_unique($authors);
$authors = array_diff($authors,array('0')); // Remove those where users are not registered

Une autre alternative consiste à utiliser WP_Comment_Query http://core.trac.wordpress.org/browser/branches/3.2/wp-includes/comment.php#L186

1
Mridul Aggarwal

L'extrait suivant est un moyen de le faire:

$args = array(
'status' => 'approve',
'post_id' => get_the_ID()
);
$comments = get_comments( $args );
foreach( $comments as $comment )
    echo $comment->user_id;

Les identifiants d’utilisateur doivent bien sûr être utilisés pour un meilleur usage que echoing.

2
Poulomi Nag