If you are anything like me or have a client who is like me, this code will help you tremendously. If you ever forget to set a the featured image (post thumbnail) in your WordPress post, this code will automatically grab the first image in your post and set it as your featured image. You can simply drop this code into your active theme’s functions.php file and you are all set.
function autoset_featuredimage() {
global $post;
$already_has_thumb = has_post_thumbnail($post->ID);
if (!$already_has_thumb) {
$attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
if ($attached_image) {
foreach ($attached_image as $attachment_id => $attachment) {
set_post_thumbnail($post->ID, $attachment_id);
}
}
}
}
add_action('the_post', 'autoset_featuredimage');
add_action('save_post', 'autoset_featuredimage');
add_action('draft_to_publish', 'autoset_featuredimage');
add_action('new_to_publish', 'autoset_featuredimage');
add_action('pending_to_publish', 'autoset_featuredimage');
add_action('future_to_publish', 'autoset_featuredimage');
Now your clients don’t have to mess up your nice custom built front page that utilizes featured images from posts when they forget to set the image.










This would be a really useful feature for one of the sites I am building. We will have different users creating the posts and the search display will show the featured image thumbnail using LoopBuddy. I anticipate they will forget to select a featured image. However, for some reason this is not working for me on a 3.5.1 installation. I pasted it into the functions.php of the child theme. Is it possibly because the images in the content area are in a gallery? It is a standard wordpress gallery, so I would have thought the images would be associated with the post.