have_comments(): bool

Determines whether current WordPress query has comments to loop over.


bool True if comments are available, false if no more comments.

More Information

This function relies upon the global $wp_query object to be set – this is usually the case from within The Loop.

Warning: this function will always return “false” until after comments_template() has been called. If you need to check for comments before calling comments_template() , use get_comments_number() instead.


function have_comments() {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		return false;

	return $wp_query->have_comments();



User Contributed Notes

  1. Skip to note 2 content

    Basic Example

    Example based on Twentyten’s comments.php template: Comments title (and more) is displayed only when comments are available:

    <?php if ( have_comments() ) : ?>
    	<h3 id="comments-title"><?php
    			_n( 'One Response to %2$s', '%1$s Responses to %2$s', get_comments_number(), 'twentyten' ),
    			number_format_i18n( get_comments_number() ),
    			'<em>' . get_the_title() . '</em>' 
    // [and more, of course...]
    <?php else : // or, if we don't have comments:
    	if ( ! comments_open() ) : ?>
    		<p class="nocomments"><?php _e( 'Comments are closed.', 'twentyten' ); ?></p>
    	<?php endif; // end ! comments_open() ?>
    <?php endif; // end have_comments() ?>

You must log in before being able to contribute a note or feedback.