web-dev-qa-db-ja.com

投稿内のすべてのコメント投稿者のユーザーIDを見つける方法

投稿にコメントしたすべてのユーザー(ユーザーID)を取得するワードプレスの機能はありますか?投稿IDがあります。

1
Poulomi Nag

Poulomi Nagによるget_comments()の答えは正しいです。これはやや効率的になります。

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

もう一つの方法はWP_Comment_Query http://core.trac.wordpress.org/browser/branches/3.2/wp-includes/comment.php#L186 を使うことです。

1
Mridul Aggarwal

次のコードはその1つの方法です。

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

もちろんユーザーIDはechoingだけではなく、より良い利用のために使われるべきです。

2
Poulomi Nag