Sometimes we need to grab the first post image as our WordPress Features Post Image. The following code snippet will save your first post image as your Features Post image.

function apbd_auto_featured_image() {
global $post;
  
    if (!has_post_thumbnail($post->ID)) {
    $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);
            }
        }
    }
}
// Use it temporary to generate all featured images
add_action('the_post', 'apbd_auto_featured_image');

// Used for new posts
add_action('save_post', 'apbd_auto_featured_image');
add_action('draft_to_publish', 'apbd_auto_featured_image');
add_action('new_to_publish', 'apbd_auto_featured_image');
add_action('pending_to_publish', 'apbd_auto_featured_image');
add_action('future_to_publish', 'apbd_auto_featured_image');