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

Retrieves the post thumbnail ID.


Post ID or WP_Post object. Default is global $post.



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.


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 );


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

Filters the post thumbnail ID.


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.

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.