WordPress でトラックバックをうまく表示しよう!①

と、タイトルにある通りです。

WordPress はトラックバックもコメントも同一のものとして考えているので、
デフォルトではコメントと一緒に表示されます。

これは非日本圏だとトラックバックにあまり価値付けがされていないからのようです。

今回参考にさせていただいたのはコチラのサイトです↓
小粋空間: コメントとトラックバックを分けて表示する for WordPress(改)

自分のサイト用にアレンジを加えたのでその辺りを書きたいと思います。

まずはtrackping_separator [mk's incubator]をダウンロードします。
それでインストール。

記事下とかは以下のようにする。トラックバックの id を #trackback から #trackback-url に変更。
<?php comments_popup_link('Comments (0)', 'Comments (1)', 'Comments (%)'); ?> | <a href="<?php the_permalink() ?>#trackback-url" title="Trackback" class="trackacklink">Trackbacks (<?php echo trackpings('count'); ?>)</a>


肝心のcomments.phpの部分はこんな感じ↓
<h3 class="comments-head"><?php echo trackpings('count'); ?>件のトラックバック</h3>
 
<div id="trackbacktlist" class="commentlist">
<ul><?php if ($trackbacks = trackpings("", 'both')) {
foreach ($trackbacks as $trackback) : ?>
    <li id="comment-<?php echo($trackback->comment_ID); ?>" class="comment">
		<div class="commenttext">
			<div class="commentwrapper">
				<p class="commentheader"><b>By <a href="<?php $tmp_url = esc_url($trackback->comment_author_url, array('http', 'https')); echo($tmp_url); ?>"><?php echo($trackback->comment_author); ?></a></b>, Tracked on <a href="#comment-<?php echo($trackback->comment_ID); ?>"> <?php echo(mysql2date('Y.m.j h:m A', $trackback->comment_date)); ?> </a> <?php if ( $user_ID ) : ?> | <a class="comment-edit-link" href="<?php echo(admin_url('comment.php?action=editcomment&amp;c=')); ?><?php echo($trackback->comment_ID); ?>">edit</a>
<?php endif; ?> </p>
                <?php $tmp_content = ereg_replace("(<strong>.*</strong>)(.*)","<p>\\1</p><p>\\2</p>",$trackback->comment_content); echo($tmp_content); ?>
			</div>
		</div>
    </li>
<?php endforeach;
} ?>
</ul>
</div>

<?php if ( comments_open() ) : ?>
<h3 id="comments"><?php comments_number(__('No Comments'), __('1 Comment'), __('% Comments')); ?> 
<?php endif; ?>
</h3>
 
<div id="respond" class="commentlist">
<ul><?php foreach ($comments as $comment) : ?>
<?php if ($comment->comment_type != "trackback" && $comment->comment_type != "pingback" && !ereg("<pingback />", $comment->comment_content) && !ereg("<trackback />", $comment->comment_content)) { ?>
    <li id="comment-<?php comment_ID() ?>">
      <?php if ($comment->comment_approved == '0') : ?>
        <em>Your comment is awaiting moderation.</em>
      <?php endif; ?>
      <div class="gravatar">
      <?php if (function_exists('get_avatar')) {echo get_avatar(get_comment_author_email(), '40'); } else { $gravatarUrl = "http://www.gravatar.com/avatar.php?gravatar_id=" . md5(get_comment_author_email()) . "&size=40"; echo "<img src='$gravatarUrl'/>"; }?>
       </div>
		<div class="commenttext">
			<div class="commentwrapper">
				<p class="commentheader"><b>By <?php comment_author_link() ?></b>, <?php comment_date() ?> @ <a href="#comment-<?php comment_ID() ?>"><?php comment_time() ?></a> </p>
			<?php comment_text() ?>
			</div>
		</div>
    </li>
   <?php } else {  // If there are no comments yet ?>
  <?php if ( comments_open() ) : ?>
	<p><?php _e('No comments yet.'); ?></p>
  <?php endif; ?>	
 <?php } ?>
<?php endforeach; /* end for each comment */ ?>
</ul>
</div>


で、結局どんな風に変わったのかをキャプチャしたので、
明日公開します。

ということで、
WordPress でトラックバックをうまく表示しよう!②

Trackback URL(本文中で参照として本記事にリンクを張ってください)

1件のトラックバック

コメントはまだありません

    コメントをどうぞ(はじめての方は承認されるまでコメントは表示されません)  このコメント欄の RSS フィード

    WordPress Themes