【WordPressのデータベースからコメントに関するデータを取得して表示するサンプルコード】

WordPressのコメント関連のデータを、データベースから取得して、

任意の場所に表示する方法です。この方法が前々から知りたかった~。

とても初歩的なサンプルコードも書きました。

もし、興味がございましたらご覧ください。

コメントを取得して表示

まずは前提から

WordPressの管理画面でコメントの管理ができます。

「コメント」と。そのまんまですね。クリックします。

「コメント」をクリックすると、下の様な画面が表示されると思います。

例えば下の画像では、全部で4件のコメントがあります。

コメントのステータスは、すべて管理者が承認したもの(承認済み)とします。

このコメントをデータベースから取得して、任意の場所に表示させます。

では、早速ですがコードです。

【承認済みのコメントを取得して表示】

<?php
$data = $wpdb->get_results("
 SELECT comment_content //コメント本文のフィールド
 FROM $wpdb->comments //コメントのテーブル
 where comment_approved = '1' //「承認済み」のコメント
");

foreach ($data as $value) {
 echo $value->comment_content . "<br />";
}
?>

【結果】

「承認済み」のコメント一覧がすべて表示されます。

【コード解説】

$wpdbの概念や使い方などは前回書いた記事

【WordPressのデータベース(DB)を操作したいので初めの一歩から勉強して理解しています】

【WordPressのデータベースから、投稿に関するデータを取得して表示するサンプルコード】特定の条件を付けることもできる

や、Codex「関数リファレンス/wpdb Class」「データベース構造

などと併せてご覧いただくと、わりと理解できると思います。

特別難しいというか、留意する箇所と言えば、「comment_approved」の値でしょうか。

「comment_approved」の値は、下記3種類の値を指定できます。状況に合わせて使い分けましょう。

  1. '0': 承認待ち
  2. '1': 承認済み
  3. 'spam': スパム

コメントの取得方法がわかったところで、このコードをもう一つ工夫します。

次は、取得するコメント数を変更します。

取得するコメント数を変更する

では、取得するコメント数を変更しましょう。

承認済みのコメントを「2件」表示させます。またまた、コードをご覧ください。

【承認済みのコメントを「2件」取得して表示】

$data = $wpdb->get_results("
 SELECT comment_content
 FROM $wpdb->comments
 where comment_approved = '1'
 LIMIT 2 //取得する件数を「2件」に指定
");

foreach ($data as $value) {
 echo $value->comment_content . "<br />";
}

【結果】

コメントを2件のみ取得できました。

【コード解説】

上記のコードでは、条件を指定する「WHERE」に「LIMIT(制限) 」句を追加しています。

今回の場合は「LIMIT 2」ですので、2件ですね。2件取得して、表示。そのまんまですね。

次は、コメントの並び順を変更してみましょう。

コメントの並び順を変更する

ここまでご紹介したコードは、コメントが古いものから順番で表示されています。

今度は、コメントが新しいものから順番に並び替えましょう。

【コメントが新しいものから順番に表示】

$data = $wpdb->get_results("
 SELECT comment_content
 FROM $wpdb->comments
 where comment_approved = '1'
 ORDER BY comment_ID DESC //「comment_ID」の値(数字)が大きい順から並べる
 LIMIT 2
");

foreach ($data as $value) {
 echo $value->comment_content . "<br />";
}

【結果】

 【コード解説】

「WHERE」に並び替えをする条件「ORDER BY」を加えています。

並び替える対象となるデータは「comment_ID」で、「comment_ID」はコメントされた順に

数字が自動で採番されていく仕組みです。

ですので、もっとも新しいコメントの「comment_ID」は数字が最も大きい。

ということです。で、「DESC」は降順(数字の大きい順)に並べています。

昇順(数字の小さい順)で並び替えるなら、「ASC」ですね。

まとめ

私個人的には、コメントは重要なコンテンツの1つだととらえています。

せっかくのコメントをただ表示させておくだけなんて、もったいないですね。

今回のこのメモ書きで一度頭の整理をしたところで、

私がやりたいことに少しずつ近づいてるなぁなんて思っています。

「WordPressのコメント本文を取得したい」

といった方がいらっしゃいましたら、是非ともご参考頂けますと幸いです。

また、WordPressのデータベースに関する記事は、以下も書いています。

【WordPressのデータベース(DB)を操作したいので初めの一歩から勉強して理解しています】

【WordPressのデータベースを操作する前に「SQL」「クエリ」について】ちょっとだけ書きました

【WordPressのデータベースから、投稿に関するデータを取得して表示するサンプルコード】特定の条件を付けることもできる

併せてご参考頂けますと、とてもうれしいです。

 

著者:bouya Imamura