Jamie, a Cats Who Code regular reader who maintains a technology related blog, asked me how I managed to separate comments and trackbacks on Cats Who Code.
Let’s see how the get_comment_type() function make it so easy.
Jamie, a Cats Who Code regular reader who maintains a technology related blog, asked me how I managed to separate comments and trackbacks on Cats Who Code.
Let’s see how the get_comment_type() function make it so easy.
Let's face it: When you're reading comments on a blog post, trackbacks are annoying. It's way better to display it separately from comments.
Open and edit the comments.php file from your theme. Find the comment loop:
foreach ($comments as $comment) : ?>
// Comments are displayed here
endforeach;
Replace it with the following:
<ul class="commentlist">
<?php //Displays comments only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == 'comment') { ?>
<li>//Comment code goes here</li>
<?php }
endforeach;
</ul>
<ul>
<?php //Displays trackbacks only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>
<li><?php comment_author_link() ?></li>
<?php }
endforeach;
</ul>
As you probably noticied, we used the get_comment_type() hook, which return a string containing the comment type.
5 Responses
Thanx! Very useful and I love the new site by the way. I added you to my twitter. I’m ibdreamy there. Hope you add me back. Take care. I’m gonna link back to this post so you should see a trackback soon.
Glad you enjoyed this recipe! I added you on Twitter as well. Talk to you soon!
Just thought I would point out that this code is a little inefficient as it requires going through the comments twice. A better solution would be to save the output for comments and trackbacks to variables and output them at the end. To avoid the markup getting a little unruly, you could use output buffering.
Trackbacks: