have_comments(): bool

Determines whether current WordPress query has comments to loop over.

Return

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.

Source

function have_comments() {
	global $wp_query;

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

	return $wp_query->have_comments();
}

Changelog

VersionDescription
2.2.0Introduced.

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
    		printf(
    			_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>' 
    		);
    	?></h3>
    // [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.