has_post_thumbnail()WP 2.9.0

Check if post has an image attached.

For more information on this and similar theme functions, check out the Conditional Tags article in the Theme Developer Handbook.

1 time — 0.000032 sec (very fast) | 50000 times — 0.47 sec (very fast) | PHP 7.0.5, WP 4.5.2
Hooks from the function

Return

true|false. Whether the post has an image attached.

Usage

has_post_thumbnail( $post );
$post(int|WP_Post)
Post ID or WP_Post object.
Default: global $post

Examples

0

#1 This example checks if the post has a thumbnail image attached to it.

If there is no image, we will display the default one (we'll define it ourselves by uploading the file to the images folder of our theme).

<?php 
// must be inside the loop
if( has_post_thumbnail() ) {
	the_post_thumbnail();
}
else {
	echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
}
?>

Changelog

Since 2.9.0 Introduced.
Since 4.4.0 $post can be a post ID or WP_Post object.

Code of has_post_thumbnail() WP 5.9.3

function has_post_thumbnail( $post = null ) {
	$thumbnail_id  = get_post_thumbnail_id( $post );
	$has_thumbnail = (bool) $thumbnail_id;

	/**
	 * Filters whether a post has a post thumbnail.
	 *
	 * @since 5.1.0
	 *
	 * @param bool             $has_thumbnail true if the post has a post thumbnail, otherwise false.
	 * @param int|WP_Post|null $post          Post ID or WP_Post object. Default is global `$post`.
	 * @param int|false        $thumbnail_id  Post thumbnail ID or false if the post does not exist.
	 */
	return (bool) apply_filters( 'has_post_thumbnail', $has_thumbnail, $post, $thumbnail_id );
}