WordPress 2.7 ではテンプレートタグだけでコメントとトラックバックが分離して表示できるようになっていました。
- Template Tags/wp list comments « WordPress Codex
- Separating Pings from Comments in WordPress 2.7 | Sivel.net
日本語情報がまだ少なくて半分くらいしか理解していないながらもやってみました(`・ω・´)
コメント部分
<?php if (have_comments()) { if (!empty($comments_by_type['comment'])) { // コメントがある場合 ?>
<ol class="feedbackList">
<?php wp_list_comments("type=comment"); ?>
</ol>
<?php } } else { // コメントがない場合 ?>
<p>コメントはありません</p>
<?php } ?>
コメントがある場合は内容を表示、ない場合は別の文言を表示。
<?php if (comments_open()) { // コメントを受け付ける場合 ?>
<h2>コメントをどうぞ</h2>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentForm">
〜フォーム内容省略〜
</form>
<?php } ?>
<?php } else { // コメントを受け付けない場合 ?>
<h2>コメントは受け付けておりません</h2>
<p>誠に申し訳ありませんが、現在コメントの受付を中止しております。</p>
<?php } ?>
コメントを受け付けている場合はフォームを表示、受け付けていない場合は別の文言を表示。
トラックバックとピンバック部分
<?php if (have_comments()) { if (!empty($comments_by_type['pings'])) { // トラックバックがある場合 ?>
<ol class="feedbackList">
<?php wp_list_comments('type=pings'); ?>
</ol>
<?php } } else { // トラックバックがない場合 ?>
<p>トラックバックはありません</p>
<?php } ?>
トラックバックかピンバックがある場合は内容を表示、ない場合は別の文言を表示。
<?php if (pings_open()) { // トラックバックを受け付ける場合 ?>
<p class="trackbackUrl"><label for="trackbackUrl">トラックバック URL</label><input type="text" value="<?php trackback_url() ?>" size="50" readonly="readonly" onfocus="this.select()" id="trackbackUrl" /></p>
<?php } else { // トラックバックを受け付けない場合 ?>
<p>誠に申し訳ありませんが、現在トラックバックの受付を中止しております。</p>
<?php } ?>
トラックバックとピンバックを受け付けている場合はトラックバック URL を表示、受け付けていない場合は別の文言を表示。
件数表示を分けることはできないらしい
新しく追加されたテンプレートタグによって受け付けたコメントやトラックバックを分類して表示することは簡単になったが、受け付けた件数を分離して表示するには今まで通り別の手段が必要のようです。
そこは コメントとトラックバック (5) みたいな表示でもいいかなー。
callback について
コメントやトラックバックを表示する形式も functions.php で指定することができるようですが、英語も PHP も不自由なためまだ試しておりません(´・ω・`)
「WordPress 2.7 でコメントとトラックバックを分離」への1件のフィードバック