WordPressで投稿や固定ページのコメントの件数のみ取得する方法

WordPressの投稿や固定ページでコメント・トラックバック・ピンバックのすべての件数をまとめて取得するには、以下の関数を使うとできます。

ところで、コメントの件数のみ取得したい場合は「wp_count_comments」関数を使うとできます。

以下に関数の概要と、WordPressループ内・ループ外それぞれ取得する方法を書きましたので、機会がありましたらご参考ください。

「wp_count_comments」を使ってコメントの件数のみ取得する方法

以下の方法で取得できます。Codexに書いてあるサンプルを参考にしました。

<?php
 $comments = wp_count_comments( post_id ); //「post_id」は投稿・固定ページのIDを入れる
 echo $comments->total_comments; //合計のコメント数を取得、表示する
?>

コードがやっていること

「wp_count_comments」を使って、投稿・固定ページのコメント情報を取得しています。コメント情報の中から合計のコメント数を取得、表示しています。

「wp_count_comments」で取得できるもの一覧

「wp_count_comments」使って取得できるコメント情報の中には「ステータス別にコメントの件数」を取得できるものもあります。どんなステータスがあるのか、よく使いそうなものを以下にまとめました。

コメントのステータス

承認済み approved
スパム spam
ゴミ箱に入ってる trash
承認待ち moderated

例えば「承認済み」のコメント数を表示したい場合には以下のようにすると取得できます。

<?php
 $comments = wp_count_comments( post_id ); //「post_id」は投稿・固定ページのIDを入れる
 echo $comments->approved; //「承認済み」のコメント数を取得、表示する
?>

関数についてなんとなくわかったところで、以下に「wp_count_comments」をWordPressループ内・ループ外で取得する方法をまとめましたので、ご参考ください。

WordPressループ内で取得する方法

ループ内で取得する場合は「$post->ID」などで現在表示している投稿・固定ページのIDを取得すればいいですね。

<?php $comments = wp_count_comments( $post->ID ); ?>

WordPressループ外で取得する方法

ループ外で取得する場合は「get_the_ID」などでIDを取得して設定すればいいですね。

<?php $comments = wp_count_comments( get_the_ID() ); ?>

「get_the_ID」については以下のページをご参考ください。

コメントの件数のみ取得したい、という場合にはご参考頂けますと幸いです。

著者:bouya Imamura