2018年1月13日 : WordPress

[WordPress] 投稿のコメント件数を未承認分も確認する

早速ゲームもアセットもUnityも関係無いですが、WordPressでつまずいたのでメモ的に投稿してみます。

コメント欄で「コメントはありません」という表示がしたくて、コメント数を取得する方法を調べていたのですが、

まず始めに使ってみたのが此方で、
■関数リファレンス/get comments number

<?php
  $comment_num = get_comments_number( get_the_ID() );

  if ( $comment_num == 0) {
    echo '<p>コメントはありません。</p>';
  } else {
    // この辺でコメントリスト表示
  }
?>

みたいな事をやってたのですが、表示確認していて問題が。
なんか未承認のコメントだけの時に表示されないなーと思っていて気づいたんですが、get_comments_number だと未承認のコメント数が入らないんですよね。

それで、未承認のコメントしか無い時に何も表示されないのもアレなので(未承認でも書いた本人には表示される仕様)、分岐はとりあえず文字表示だけを切替る形に変更。

そして内容丸ごと取ってきて数えるのもなんだかなーと思って(全部取得する関数は使ってなくて)調べていたら、未承認も取れるのが見つかっりました。

■Function Reference/wp count comments

<?php
  $count_comments = wp_count_comments( get_the_ID() );

  if ( $count_comments->total_comments == 0 ) {
    echo '<p>コメントはありません。</p>';
  } else if( $count_comments->moderated == $count_comments->total_comments ) {
    echo '<p>コメントは承認待ちです。</p>';
  }

  // この辺でコメントリスト表示
?>

$count_comments->approved で承認済みの数
$count_comments->moderated で未承認の数
$count_comments->total_comments でトータルの数
他、取れるみたいです。

ちなみに、此方の記事にヒントを頂きました!
■WordPressで投稿や固定ページのコメントの件数のみ取得する方法
助かりました!有難うございます。