ループ外でユーザーの合計コメント数を表示するにはどうすればよいですか?
このコードを使用して、ループ内のコメント数を表示します。
<?php
global $wpdb;
$user_id = $post->post_author;
$where = 'WHERE comment_approved = 1 AND user_id = ' . $user_id ;
$comment_count = $wpdb->get_var(
"SELECT COUNT( * ) AS total
FROM {$wpdb->comments}
{$where}
");
echo 'Comments: <strong>' . $comment_count . '</strong>';
?>
これはループ内で正常に機能します。そのコードをループの外で機能させるために、に変更$user_id = $post->post_author;
しまし$user_id = get_the_author_meta( 'ID' );
たが、機能しませんでした。
私が行った中で最も近いのは、このコードです。
<?php
global $wpdb;
$where = 'WHERE comment_approved = 1 AND user_id <> 0';
$comment_counts = (array) $wpdb->get_results("
SELECT user_id, COUNT( * ) AS total
FROM {$wpdb->comments}
{$where}
GROUP BY user_id
", object);
foreach ( $comment_counts as $count ) {
$user = get_userdata($count->user_id);
echo 'Comments: ' . $count->total . '
';
}
?>
ただし、これは次のようにすべてのユーザーのコメント数をエコーします:「コメント:28コメント:11コメント:55」など
ループ外のユーザーのコメント数を表示するためにどのコードを使用できますか?