Loading the comments template in WordPress themes using comments_template

The comments_template function in WordPress is used to include the comments template from the current theme into a post or page. This function loads the comments.php file from the theme’s directory, which is responsible for displaying the comments section and the comment form. If the theme does not contain a comments.php file, WordPress will fall back to the default comments template.

The comments_template function is typically called in the single post or page templates, allowing the comments section to be displayed at the appropriate location within the content. This function ensures that the comments section is rendered consistently across different posts and pages, adhering to the theme’s design and layout.

When the comments_template function is executed, it performs the following actions:

  • Checks if the post is open for comments and if the current user has permission to view comments.
  • Loads the comments.php file from the active theme’s directory.
  • Displays the existing comments for the post or page.
  • Renders the comment form for users to submit new comments.

By using the comments_template function, developers can ensure that the comments functionality is integrated into their themes, providing a consistent user experience for commenting on posts and pages.

Parameters

  • $file (string), optional. Default: ‘/comments.php’. The file to load.
  • $separate_comments (bool), optional. Default: false. Whether to separate comments by type.

Return Value

The comments_template function does not return a value.

Examples

How to Load the Default Comments Template

if ( comments_open() || get_comments_number() ) {
 comments_template();
}

This snippet first checks if comments are open or if there are any comments using the comments_open and get_comments_number functions. If either condition is true, it loads the default comments template by calling the comments_template function without any parameters.

How to Load a Custom Comments Template

if ( comments_open() || get_comments_number() ) {
 comments_template( '/custom-comments.php' );
}

This snippet first checks if comments are open or if there are any comments using the comments_open and get_comments_number functions. If either condition is true, it loads a custom comments template by calling the comments_template function with the parameter '/custom-comments.php'.

How to Load Comments Template with Separated Comments

if ( comments_open() || get_comments_number() ) {
 comments_template( '/comments.php', true );
}

This snippet first checks if comments are open or if there are any comments using the comments_open and get_comments_number functions. If either condition is true, it loads the default comments template by calling the comments_template function with the parameters '/comments.php' and true, which indicates that the comments should be separated by type.

Conclusion

The comments_template function in WordPress is designed to seamlessly integrate the comments section into a theme’s template files. By invoking this function, developers can display the comments area, including the comment form and the list of comments, within the context of a post or page. This function dynamically loads the appropriate comments template file, ensuring that the comments section is rendered consistently according to the theme’s design and structure. It serves as a critical component for managing user interactions and discussions on a WordPress site, thereby facilitating user engagement through comments.

Related WordPress Functions