- 更新日: 2013年11月9日
- WordPress
WordPress ホームに読者さんからのコメント投稿一覧リストを表示する PHP コード
時々このブログにコメントを頂くようになりましたので、トップページのサイドバーに最近頂いたコメント投稿のリストを表示するようにしました。コメントを頂けると嬉しく、ブログを書く励みになりますし、コメントを頂けた記事や有用なコメントは他の読者の方々にも目につくほうが良いと思いまして。
コメント投稿リストを表示する PHP コード
ということで、以下書いたPHPコード。私の場合、サイドバー用のテンプレートに書いていますが、is_home() で条件判定してホームのサイドバーにだけ表示させています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php if( is_home() ) : ?> <ul class="sidetitle line_small"><li class="comment">最近のコメント</li></ul> <ul class="sidenavi"> <?php $comments = get_comments(array('status' => 'approve' ,'number' => 5, 'type' => 'comment')); $prev_link = ""; foreach($comments as $comment): $post = get_post($comment->comment_post_ID); ?> <li> <?php $this_link = get_permalink($post->ID); if( $this_link != $prev_link ) { echo '<a href="' . $this_link . '">' . $post->post_title . '</a> へのコメント<br />'; } $prev_link = $this_link; ?> ・<?php comment_author_link(); ?> さん(<?php comment_date('m/d'); ?>)<br /> </li> <?php endforeach; ?> </ul> <?php endif; ?> |
ちょっとだけ解説
まあコード読めば大体分かると思うのですけど少し解説。
1 |
$comments = get_comments(array('status' => 'approve' ,'number' => 5, 'type' => 'comment')); |
この5行目で get_comments 関数の配列の引数で取得するコメントの条件を指定。status→approve(承認済み)、number→5件取得、type→コメントのみ(pings:トラックバックは表示しない)。
また、以下の7行目から取得したコメントの配列をぐるぐる回す際に…
1 |
foreach($comments as $comment): |
$prev_link, $this_link という変数を使って、コメントが付けられたパーマリンク(URL)が、1つ前のコメントと同じパーマリンク(URL)の記事を対象とする場合は、そのパーマリンクを重複して表示させないようにしています。これにより同じパーマリンクが繰り返し表示されるのを防げ、表示がすっきりします。
では皆様からのコメントをお待ちしております!質問、応援、叱咤激励(優しくお願いします、笑)、ラブレター等なんでも大歓迎です。
- WordPress の関連記事
- WordPressをTwitter Bootstrapでレスポンシブデザイン対応
- WordPressブログに更新日を表示
- WordPressにOGP設定・プラグインなしでFacebook/Twitter Cards対応
- WordPressでパンくずリスト・複数の親子カテゴリーを表示
- WordPressでプライベートな非公開ブログを運用
- BackWPupでエラー ERROR: Dropbox API: (35)
- ブログ・WordPress記事をFacebookに自動投稿するIFTTT設定
- RSS Graffitiが終了…代替にはIFTTTが使える
- WordPressで親カテゴリーに属する子カテゴリーの一覧を出力
- wp_list_categoriesでリンクなしで投稿数ゼロのカテゴリを表示 – WordPress
- 4件のコメント
とても有益な情報をありがとうございます。
早速使わせて頂きます!
一つお聞きしたいのですが、このコードだと全てのコメントが対象になりますよね?
AとBのカテゴリーだけの新着コメント表示とするのは難しいのでしょうか?
ご教授願えれば、助かります。
よろしくお願い致します。
アッシュさん、こんにちは。コメント有難うございます。
> 一つお聞きしたいのですが、このコードだと全てのコメントが対象になりますよね?
はい、その通りです。
> 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へ移行中です。
その中で、実現したいが??な事が多く有料でもキッチリ実現できるなら・・・・
と考えています。
突然コメントを入れた上に、遠慮ない質問で申し訳ありません。
アッシュさん、こちらこそご返信ありがとうございます。
正式なお仕事のご依頼というとことであれば、お受けすることは可能ですよ。
Wordpress の PHP カスタマイズですよね。
お仕事のやり取りであれば、メールで行うほうが良いですので、
こちらのお問い合わせフォーム → http://easyramble.com/contact から詳細をご連絡頂けますでしょうか?
実現したい機能・仕様をご連絡頂ければ、お見積りをご返信いたします。
以上ですが、よろしくお願いいたします。