WordPress ホームに読者さんからのコメント投稿一覧リストを表示する PHP コード

時々このブログにコメントを頂くようになりましたので、トップページのサイドバーに最近頂いたコメント投稿のリストを表示するようにしました。コメントを頂けると嬉しく、ブログを書く励みになりますし、コメントを頂けた記事や有用なコメントは他の読者の方々にも目につくほうが良いと思いまして。

スポンサーリンク

コメント投稿リストを表示する PHP コード

ということで、以下書いたPHPコード。私の場合、サイドバー用のテンプレートに書いていますが、is_home() で条件判定してホームのサイドバーにだけ表示させています。

ちょっとだけ解説

まあコード読めば大体分かると思うのですけど少し解説。

この5行目で get_comments 関数の配列の引数で取得するコメントの条件を指定。status→approve(承認済み)、number→5件取得、type→コメントのみ(pings:トラックバックは表示しない)。

また、以下の7行目から取得したコメントの配列をぐるぐる回す際に…

$prev_link, $this_link という変数を使って、コメントが付けられたパーマリンク(URL)が、1つ前のコメントと同じパーマリンク(URL)の記事を対象とする場合は、そのパーマリンクを重複して表示させないようにしています。これにより同じパーマリンクが繰り返し表示されるのを防げ、表示がすっきりします。

では皆様からのコメントをお待ちしております!質問、応援、叱咤激励(優しくお願いします、笑)、ラブレター等なんでも大歓迎です。

スポンサーリンク
WordPress は人気ナンバーワンのブログ・ウェブサイトの管理ツールです。PHP を使えればカスタマイズできるので、ぜひトライされてみてください。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)
  • 4件のコメント
  • アッシュ

    とても有益な情報をありがとうございます。
    早速使わせて頂きます!

    一つお聞きしたいのですが、このコードだと全てのコメントが対象になりますよね?

    AとBのカテゴリーだけの新着コメント表示とするのは難しいのでしょうか?

    ご教授願えれば、助かります。
    よろしくお願い致します。

    • taka

      アッシュさん、こんにちは。コメント有難うございます。

      > 一つお聞きしたいのですが、このコードだと全てのコメントが対象になりますよね?
      はい、その通りです。

      > AとBのカテゴリーだけの新着コメント表示とするのは難しいのでしょうか?
      できますよ。以下をお読みください。
      http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_post
      get_post() の戻り値から post_category の情報が取れますので、それが A か B のカテゴリーの時だけ表示させるようにすれば良いです。

      以上ですが、よろしくお願いします。

  • アッシュ

    返信ありがとうございます。

    正直なところ内容を理解できた!とは言えないのですが、出来ると分かっただけで有難いです。

    ここからは失礼になるかも知れませんので、問題があれば削除お願いします。

    具体的なコードを有料でお願いします!的なことは受けておられないのでしょうか?

    有料会員サイトを運営していますが、WPへ移行中です。
    その中で、実現したいが??な事が多く有料でもキッチリ実現できるなら・・・・
    と考えています。

    突然コメントを入れた上に、遠慮ない質問で申し訳ありません。

    • taka

      アッシュさん、こちらこそご返信ありがとうございます。
      正式なお仕事のご依頼というとことであれば、お受けすることは可能ですよ。
      Wordpress の PHP カスタマイズですよね。

      お仕事のやり取りであれば、メールで行うほうが良いですので、
      こちらのお問い合わせフォーム → http://easyramble.com/contact から詳細をご連絡頂けますでしょうか?
      実現したい機能・仕様をご連絡頂ければ、お見積りをご返信いたします。
      以上ですが、よろしくお願いいたします。

Leave Your Message!