How to remove trackbacks from your WordPress comments
Update: I’ve converted this snippet into a lightweight plugin called Remove Trackbacks.
For the last few years, I’ve been using some simple PHP magic to separate real comments from trackbacks in my comments section. A few weeks ago, I realized that trackbacks are by-and-large useless for the typical reader.
So, I decided to remove them. It’s as easy as adding this snippet of code, courtesy of Weblog Tools Collection, to your functions.php
file…
add_filter('comments_array', 'filterTrackbacks', 0);
add_filter('the_posts', 'filterPostComments', 0);
//Updates the comment number for posts with trackbacks
function filterPostComments($posts) {
foreach ($posts as $key => $p) {
if ($p->comment_count ID);
$comments = array_filter($comments, "stripTrackback");
$posts[$key]->comment_count = sizeof($comments);
}
return $posts;
}
//Updates the count for comments and trackbacks
function filterTrackbacks($comms) {
global $comments, $trackbacks;
$comments = array_filter($comms,"stripTrackback");
return $comments;
}
//Strips out trackbacks/pingbacks
function stripTrackback($var) {
if ($var->comment_type == 'trackback' || $var->comment_type == 'pingback') { return false; }
return true;
}
There are other ways you could do this, but here’s why this approach rocks:
- You will still receive notifications if people link to your site on the web.
- It doesn’t just prevent new trackbacks. It also removes existing ones.
- Trackbacks aren’t just hidden, they’re removed from your comment count altogether.