How to automatically set the featured image in WordPress

Do you often forget to set the featured image for your WordPress posts? Here’s a tiny piece of code which automatically set the first image (attachment) from your post as the featured image.

Useful Read: How to Add featured thumbnail to admin post columns

Paste the following code in your functions.php file located inside your theme directory.

//Automatically Set the Featured Image
function autoset_featured() {
          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_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');



  1. Dear friend, this isn’t a very good idea… is a very spendy procedure… Is better to check if has post thumbnail within the template in a child theme, and if there isn’t, just echo a default image… You can also create the setting for a default image. Even with the setting, it ll take have the time from your preposition.


Leave a Comment.