set_post_thumbnail( int|WP_Post $post, int $thumbnail_id )
Sets the post thumbnail (featured image) for the given post.
Description Description
Parameters Parameters
- $post
-
(int|WP_Post) (Required) Post ID or post object where thumbnail should be attached.
- $thumbnail_id
-
(int) (Required) Thumbnail to attach.
Return Return
(int|bool) True on success, false on failure.
Source Source
File: wp-includes/post.php
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;
}
Expand full source code Collapse full source code View on Trac
Changelog Changelog
| Version | Description |
|---|---|
| 3.1.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
To programmatically setup an uploaded image file as a thumbnail, you can use the following code…
/* * $file is the path to your uploaded file (for example as set in the $_FILE posted file array) * $filename is the name of the file * first we need to upload the file into the wp upload folder. */ $upload_file = wp_upload_bits( $filename, null, @file_get_contents( $file ) ); i f ( ! $upload_file['error'] ) { // if succesfull insert the new file into the media library (create a new attachment post type). $wp_filetype = wp_check_filetype($filename, null ); $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_parent' => $post_id, 'post_title' => preg_replace( '/\.[^.]+$/', '', $filename ), 'post_content' => '', 'post_status' => 'inherit' ); $attachment_id = wp_insert_attachment( $attachment, $upload_file['file'], $post_id ); if ( ! is_wp_error( $attachment_id ) ) { // if attachment post was successfully created, insert it as a thumbnail to the post $post_id. require_once(ABSPATH . "wp-admin" . '/includes/image.php'); $attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload_file['file'] ); wp_update_attachment_metadata( $attachment_id, $attachment_data ); set_post_thumbnail( $post_id, $attachment_id ); } }Expand full source codeCollapse full source code