とある作業でWordPress ブログに集まったコメントをまとめる必要があったので、隠しページにコメントのオーサーやURL、コメント対象の記事タイトルなどの各種情報を一覧で表示させたことがきっかけですが、
今後も何かと使いそうな処理なのでまとめました。
実用的なところでは、ブログに集まったコメントの中から「最新コメント5件をサイドメニューなどに出力する」なんて処理にも使えるかと思います。
ブログのコメント一覧を出力
get_comments関数でコメントの情報を取得する事ができます。page.phpなどのテンプレートファイル内で以下のようなコードを書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<ul> <?php $comments = get_comments(array( ‘status’ => ‘approve’, ‘number’ => 700 )); foreach($comments as $comment): $post = get_post($comment-> comment_post_ID); ?> <li> <?php the_permalink(); ?>, <?php the_title(); ?>, <?php comment_link(); ?>, <?php comment_author_link(); ?>, <?php comment_date(‘Y/m/d’); ?>, <?php comment_text(); ?>, </li> <?php endforeach; ?>, </ul> |
表示数である’number’と、ループ内の<li></li> の処理は、用途に応じて加工してみてください。
上記ソースで取得できる情報は以下の通りです。
<?php the_permalink(); ?>
投稿のパーマリンク<?php the_title(); ?>
投稿タイトル<?php comment_link(); ?>
コメントのリンク<?php comment_author_link(); ?>
コメント投稿者名と、そのオーサーのサイトへのリンク<?php comment_date(‘Y/m/d’); ?>
コメント時間(年/月/日)<?php comment_text(); ?>
コメント本文サイドメニューに最新のコメントリストを表示
今度はブログのサイドメニューに、最新のコメントを5件表示する方法です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<ul> <?php $comments = get_comments(array( ‘status’ => ‘approve’, ‘number’ => 5 )); foreach($comments as $comment): $post = get_post($comment-> comment_post_ID); ?> <li><a href="<?php the_permalink(); ?>"> <?php comment_excerpt(); ?></a><br /> (<?php comment_author_link(); ?>,<?php comment_date(‘Y/m/d’); ?>) </li> <?php endforeach; ?> </ul> |
同じく、’number’ => 5 の数字を変更すれば好きな数だけ表示できます。
<?php comment_excerpt(); ?>
コメント本文の抜粋を取得できます。コメント全文が長い場合に抜粋を利用する事で、サイドメニューにも自然に収まるかと思います。
参考ページ
http://codex.wordpress.org/Function_Reference/get_comments
コメント