get_post_thumbnail_id( int|WP_Post $post = null ): int|false

Retrieves the post thumbnail ID.

Parameters

$postint|WP_Postoptional
Post ID or WP_Post object. Default is global $post.

Default:null

Return

int|false Post thumbnail ID (which can be 0 if the thumbnail is not set), or false if the post does not exist.

More Information

  • To enable featured images, see post thumbnails, the current theme must include add_theme_support( 'post-thumbnails' ); in its functions.php file. See also Post Thumbnails.
  • “Post Thumbnail” is an outdated term for “Featured Image”. This function returns the ID of the post’s featured image. It does not return IDs of other images attached to posts that are thumbnail sized.

Source

function get_post_thumbnail_id( $post = null ) {
	$post = get_post( $post );

	if ( ! $post ) {
		return false;
	}

	$thumbnail_id = (int) get_post_meta( $post->ID, '_thumbnail_id', true );

	/**
	 * Filters the post thumbnail ID.
	 *
	 * @since 5.9.0
	 *
	 * @param int|false        $thumbnail_id Post thumbnail ID or false if the post does not exist.
	 * @param int|WP_Post|null $post         Post ID or WP_Post object. Default is global `$post`.
	 */
	return (int) apply_filters( 'post_thumbnail_id', $thumbnail_id, $post );
}

Hooks

apply_filters( ‘post_thumbnail_id’, int|false $thumbnail_id, int|WP_Post|null $post )

Filters the post thumbnail ID.

Changelog

VersionDescription
5.5.0The return value for a non-existing post was changed to false instead of an empty string.
4.4.0$post can be a post ID or WP_Post object.
2.9.0Introduced.

User Contributed Notes

  1. Skip to note 6 content

    Show all attachments for the current post except the Featured Image
    To get all post attachments except the Featured Image, you can use this function with something like get_posts().

    Do this inside The_Loop (where $post->ID is available).

    $args = array(
    	'post_type'   => 'attachment',
    	'numberposts' => -1,
    	'post_status' => 'any',
    	'post_parent' => $post->ID,
    	'exclude'     => get_post_thumbnail_id(),
    );
    
    $attachments = get_posts( $args );
    
    if ( $attachments ) {
    	foreach ( $attachments as $attachment ) {
    		echo apply_filters( 'the_title', $attachment->post_title );
    		the_attachment_link( $attachment->ID, false );
    	}
    }

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