rveitch
6/10/2016 - 11:07 PM

Automatically Set the Featured Image in WordPress from the first image in the post

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' );