Automatically Set the Featured Image in WordPress from the first image in the post
<?php
/* Automatically Set the Featured Image in WordPress from the first image in the post */
$posts = get_posts( array(
'post_type' => 'post',
'numberposts' => -1,
'post_status' => 'publish',
) );
if ( $posts ) {
foreach ( $posts as $post ) {
$post_id = $post->ID;
fcc_autoset_featured( $post_id );
}
wp_reset_postdata();
}
function fcc_autoset_featured( $post_id ) {
$already_has_thumb = get_post_thumbnail_id( $post_id );
if ( ! $already_has_thumb ) {
$args = array(
'posts_per_page' => 1,
'order' => 'ASC',
'post_mime_type' => 'image',
'post_parent' => $post_id,
'post_status' => null,
'post_type' => 'attachment',
);
$attachments = get_children( $args );
if ( $attachments ) {
foreach ( $attachments as $attachment ) {
set_post_thumbnail( $post_id, $attachment->ID );
}
}
}
}
echo '<br>Complete - ' . date( 'H:i:s' );
/* Original */
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' );