W3cubDocs

/WordPress

set_post_thumbnail( int|WP_Post $post, int $thumbnail_id ): int|bool

Sets the post thumbnail (featured image) for the given post.

Parameters

$postint|WP_Postrequired
Post ID or post object where thumbnail should be attached.
$thumbnail_idintrequired
Thumbnail to attach.

Return

int|bool Post meta ID if the key didn’t exist (ie. this is the first time that a thumbnail has been saved for the post), true on successful update, false on failure or if the value passed is the same as the one that is already in the database.

Source

function set_post_thumbnail( $post, $thumbnail_id ) {
	$post         = get_post( $post );
	$thumbnail_id = absint( $thumbnail_id );
	if ( $post && $thumbnail_id && get_post( $thumbnail_id ) ) {
		if ( wp_get_attachment_image( $thumbnail_id, 'thumbnail' ) ) {
			return update_post_meta( $post->ID, '_thumbnail_id', $thumbnail_id );
		} else {
			return delete_post_meta( $post->ID, '_thumbnail_id' );
		}
	}
	return false;
}

Changelog

Version Description
3.1.0 Introduced.

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/set_post_thumbnail