WordPress 「wp_list_comment」 コメント、トラックバック、ピンバックの扱いに関すること

WordPressの仕様の話

まず、Wordpressの仕様の話から。WPではコメントとトラックバック、ピンバックがすべて同列のように扱われる。それがいやだなって人はごにょごにょにしてコメントとトラックバックを分けて表示するようにしなくてはいけない。

WP2.7以前はプラグインとかで対処しないといけなかったっぽいんだけど、今となってはテンプレートタグだけで対処できるようになった。

wp_list_comment について

そのテンプレートタグ (wp_list_comment)については、結構前にうちのサイトでも触れていたりするんだけど、もう少し詳しく書いてみる。というか補足。(WordPress2.7 テンプレートタグ wp_list_comments() | ROKU STUDIO)

実は日本語版のCodexだとまだ訳し切れてなくて、しかも一番重要だと思われるところが訳されてない。

この「type」の説明が欲しかったのに、日本語版には載ってない。(2009.09.30現在)

type
(string) The type of comment(s) to display. Can be ‘all’, ‘comment’, ‘trackback’, ‘pingback’, or ‘pings’. ‘pings’ is ‘trackback’ and ‘pingback’ together. Default is ‘all’.

Template Tags/wp list comments ? WordPress Codex

つまりはこういうことだ。↓

< ?php wp_list_comments('type=comment'); //コメントのみのリスト ?>
< ?php wp_list_comments('type=trackback'); //トラックバックのみのリスト ?>
< ?php wp_list_comments('type=pingback'); //ピンバックのみのリスト ?>
< ?php wp_list_comments('type=pings'); //トラックバックとピンバックのリスト ?>

それで、方針としては comment.php の中身をこのテンプレートタグを使ってちょっと書き換えるわけだ。

と、その前に

comment.php 以外に書き換える必要がある大切な部分があって、それは single.php などの comment.php を読み込む部分。

デフォルトでは次のようになっているかと思う。

<?php comments_template(); ?>

次のように変更する。

<?php comments_template('', true); ?>

どういうことなのかちょっと正確な情報が見つからないんだけど、これをやらないとうまくいかない部分が現れるので、忘れないでやっておく。

準備完了。comment.php を書き換える。

comment.php は具体的には次のように変える。以下はコメントの表示部分のみを載せます。

<h3>この記事へのコメント</h3>

<?php if ( ! empty($comments_by_type['comment']) ) : //コメントがある場合 ?>

  <ol class="commentlist">
  <?php wp_list_comments('type=comment'); //コメントのみのリスト ?>
  </ol>

<?php else : // コメントがない場合 ?>

  <?php if ('open' == $post->comment_status) : //コメントがオープンの場合 ?>
    <p class="nocomments">現在、この記事へのコメントはありません。</p>

  <?php else : // コメントがクローズの場合 ?>
    <p class="nocomments">現在、この記事へのコメントは受け付けていません。</p>

  <?php endif; ?>

<?php endif; ?>

single.phpを書き換えておかないと、ここらへんがうまくいかない。

<?php if ( ! empty($comments_by_type['comment']) ) : //コメントがある場合 ?>

こんな感じで、コメント部分、トラックバック・ピンバック部分を作る。(トラックバックとピンバックを分けたければそうする)

実際にうちで使ってるcomment.phpの全文は次のファイルです。
ダウンロード:commentphp.zip

参考

Similar Posts:

この記事へのコメント

現在、この記事へのコメントはありません。

コメントをどうぞ

この記事へのトラックバックとピンバック

現在、この記事へのトラックバックはありません。

TrackBack URL