以前からやりたいな、と思っていながらできていなかった WordPress のコメントとトラックバックを別々に表示することに取り組みました。たったこれだけなのに 1 日費やした。
それはなぜかというと、 WordPress のコメントとトラックバックを分けて表示するのには Trackping Separator というプラグインが便利なのだけれど、それの最新バージョン 2.0.2 ( 2009 年 2 月 8 日現在 ) では、それ以前と仕様がだいぶ異なるようで、 Web 上にある情報が役に立たない。 Trackping Separator のバージョンによって動作が違うというのに気がつくまでに半日かかりました。下記のサイトを見つけたときは女神様のように思いました。
→ jmblog.jp : WordPress を 2.2 から 2.7 にバージョンアップしたらエラーが出まくった
上記サイトのコードと公式サイトの情報(英語)にて何とかやりたいことはできました。最新バージョンではループを使わずにトラックバックが書き出せるように変更されています。
ついでにトラックバック URL も表示するようにしました。
以下そのコード。
index.php
<span class="post-cat"><?php the_category( ‘ , ‘ ) ?></span> <span class="post-comments"><?php comments_popup_link( ‘ Comments (0) ’ , ‘ Comments (1) ’ , ‘ Comments (%) ’ ); ?> | <a href="<?php the_permalink() ?>#trackback" title="Trackback" class="trackacklink">Trackbacks (<?php echo trackpings( ‘ count ’ ); ?>)</a></span>
comments.php
<?php if (trackpings( ‘ count ’ )!=0) : ?>
<h3 class="trackback-head"> トラックバック (<?php echo trackpings( ‘ count ’ ); ?>)</h3>
<?php listtrackpings( ‘ both ’ , ’
<li id="trackback-%id">
<div class="content">%content</div>
<cite>
<span class="author"><a href="%url">%origin</a></span> <span class="date">%date</span>
</cite>
</li>
‘ ) ?><?php endif; ?>
<?php if ( ‘ open ’ == $post->ping_status) : // comment close ?>
<h3 class="trackback-head"> トラックバック URL</h3>
<input type="text" value="<?php trackback_url(true); ?>" size="60" readonly="readonly" id="trackbackurl" tabindex="1" accesskey="t" onfocus="this.select()" />
<?php endif; ?>