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種類の値を指定できます。状況に合わせて使い分けましょう。
'0'
: 承認待ち'1'
: 承認済み'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のデータベースから、投稿に関するデータを取得して表示するサンプルコード】特定の条件を付けることもできる
併せてご参考頂けますと、とてもうれしいです。
このページを共有する