My wordpress makes use of custom post templates. I'm now trying to create a custom comments template as well.

I noticed that the comments template is called via this function <?php comments_template( '', true ); ?>

I checked in my functions.php and comments.php but don't see the function being declared anywhere. Can someone please advise on how to go about introducing a custom comments template?

  • 1
    @Chip Bennet, thanks for the heads up. Reading through that page, I notice that to set up an alternative comments template, i'd have to use this <?php comments_template( '/short-comments.php' ); ?> so am I right in assuming that I can start off by copy pasting the code from comments.php into short-comments.php and then work my way through from there? Commented Oct 27, 2011 at 13:31
  • You can do it that way, but why? What are you trying to accomplish? Commented Oct 27, 2011 at 15:06

2 Answers 2


The comments_template() template tag sets up the commenting variables and functions, and includes the comments.php template-part file. So, to create a custom comments template, use comments.php.

From there, you will need to get comfortable with the arguments, filters, and callbacks for wp_list_comments(), which is used to output the comment list, and comment_form(), which is used to output the comment-reply form.


You can use the callback function on wp_list_comments() function.


Usually, you will find this line in comments.php file of your wordpress theme. And the output from this command is a pretty straightforward HTML structure.

Wordpress have a option of passing the callback function as an argument to wp_list_comments function.

This callback function should return the modified HTML structure of comments section, which we are looking to implement.

<ul class="comment-list comments">
    wp_list_comments( array(
        'style'      => 'ul',
        'short_ping' => true,
            'callback' => 'better_comments'
    ) );
</ul><!-- .comment-list -->

You can check detailed tutorial here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.