指定日数以内に送信されたコメントの一覧表示
この記事は公開または最後に更新されてから2166日が経過しています。情報が古くなっている可能性があるのでご注意下さい。
こんなローカルなブログに訪れてくれる方の数もしれているので、コメントを残してくれる方などは全くおらず考える必要もないのですが、もう一つある私の仲間内だけの鳥見報告的なブログには、ごくたまにコメントを残してくれるうれしい方もいます。
コメントを送信してくれた人がいる場合、メールにての通知もありますが、やはりサイドバーなどに表示されれば一目で確認できますし便利ですよね。
標準で備わるウィジットにも「最近のコメント」があるので、それを利用すれば事足ります。
ただ、毎日たくさんのコメントがあるサイトなどでは全く考える必要のない事ですが、コメントの数が絶対的に少ないと随分時間の経ってしまったコメントへのリンクがいつまでもサイドバーに表示されていることになります。
あまり古いものをいつまでも表示させておくのも意味がありませんし、サイドバーもただ場所をとるだけですっきりしません。
標準のウィジットは件数は指定できても送信されてから何日以内のという指定まではできませんが、普通はこんなことを考える必要もないわけですから当然です。
通常だと必要のない機能を望んでいるのですね。そんなに難しい事ではなさそうなので自分で作ります。
*2015/10/01 更新
前の物はsql で指定した日数以内に送信されたコメントの数を取得して、ということをしていたのですが、別にそんなことをしなくとも、と思い直して2015/10/01に作り直しました。
未承認の物も含めとりあえず新し物から指定した数だけコメントを取得して、指定された期日内かどうかを確かめるということにしています。
パラメータの'all'に'0'を渡せば、指定期日内に送信されたコメントが無い場合に期日外のコメントを表示できます。WordPress のウィジットと同じということになりますか。
パラメータは以下の具合。
指定したいものだけを連想配列にして渡すだけ。期日指定だけなら
*これから下は以前のものです。
コメントを取得する関数の中には日付を指定できるものはなさそうですので、とりあえず指定した日数以内に送信されたコメントの数を調べるには sql を使うしかなさそうです。
取得したコメントの数が0でなければ、リストを表示する処理に入りますが、実際のコメントは get_comments()関数 を使って取得し、ループのなかで日付を比較しながら処理させました。
以下の、get_comments()関数において、
post_type において投稿のタイプを指定できます。通常の投稿なら post 、カスタム投稿ならその指定したカスタム投稿名を指定すればそれぞれの投稿に送信されたコメントを分類して取得できます。ここのサイトの場合、カスタム投稿はこの wordpressのDIY だけなのでわかりやすく、以下の関数には引数に0か1を渡すことで判別させています。
number に取得するコメントの件数を指定します。
尚、sql 中では post_type の指定をしていないので、'hold' や 'trash' の属性のコメントも数に含めてしまいますが、承認待ちのコメントかあった場合にコメントは表示されずにリストの枠だけが表示されて、承認待ちのコメントがあることがわかるのでそうしています。
Post : 2012/06/07 14:17
Comments feed
Trackback URL : https://strix.main.jp/wp-trackback.php?p=17687