So let’s say that you want to have 2 different comment templates on your WordPress site, kind of like this site has, there’s 1 for regular comments and 1 for reviews.

Multiple WordPress Comment Forms
So as you can see from the graphic, on this site we have 1 form for regular comments, shown on the left, and 1 form for reviews, shown on the right.
Let’s go through the steps so you can see what has to be done to get this functionality on your WordPress website.
1. You need to make some changes to single.php to call the comment form template you want.
<?php if ( in_category('12') || in_category('17') || in_category('37') || in_category('42') || in_category('50') || in_category('1') ) { ?>
<?php comments_template(); // Get comments.php and comment-template.php template ?>
<?php } else { ?>
<?php reviews_template(); // Get reviews.php and comment-template.php template ?>
<?php } ?>
So basically this says that if you”re looking in any of those specific categories in the first line, put the
usual comments template, otherwise put the reviews template.
2. Copy comments.php as your new template, so reviews.php in this scenario.
3. Open up wp-includes/comment-template.php
Find the code that starts like this….(around line 642 in WP 2.6)
function comments_template( $file = '/comments.php' ) {
And ends around line 670 like this…
else
require( WP_CONTENT_DIR . '/themes/default/comments.php');
}
COPY that whole block of about 30 lines and paste it below
that block so you have 2 exact copies of all that code.
Now in the 2nd block we just copied, change the first line to…
function reviews_template( $file = '/reviews.php' ) {
And change some lines near the end of the block to this…
define('REVIEWS_TEMPLATE', true);
$include = apply_filters('reviews_template', TEMPLATEPATH . $file );
Now you should have 2 separate comment templates that you can modify and tweak to your liking. You can also easily change the code in single.php so that one template or the other only shows up for a specific category or page. Here’s a link to the codex so you can learn more about that.
Conditional Tag information at WordPress.org


NC























November 12, 2008
I have been looking for something like this for a few days now. Thanks for your hard work. I will definitely give it a try.
November 13, 2008
Thanks again, it worked like a charm. However the last else clause in comment-template.php has to change to reflect the second template.
From:
else
require( WP_CONTENT_DIR . ‘/themes/default/comment.php’);
To:
else
require( WP_CONTENT_DIR . ‘/themes/default/review.php’);
November 15, 2008
Glad you got it to work Jared, and thanks for posting that code.