Set Featured Image wordpress programmatically

This tutorial explains how to set featured image wordpress programmatically. The following code get the image from the folder and upload to the wordpress media library and set that image as post featured image.

set_featured_image_wordpress_programmatically

Please also refer the tutorial which explains how to create and update wordpress post programmatically.

function setFeaturedImages() {
    
    $base = dirname(__FILE__);
    $imgfile= $base.DS.'images'.DS.'14'.DS.'Ascot_Anthracite-Grey-1.jpg';
    $filename = basename($imgfile);
    $upload_file = wp_upload_bits($filename, null, file_get_contents($imgfile));
    if (!$upload_file['error']) {
        $wp_filetype = wp_check_filetype($filename, null );
        $attachment = array(
            'post_mime_type' => $wp_filetype['type'],
            'post_parent' => 0,
            'post_title' => preg_replace('/\.[^.]+$/', '', $filename),
            'post_content' => '',
            'post_status' => 'inherit'
        );
    $attachment_id = wp_insert_attachment( $attachment, $upload_file['file'], 209 );
    
    if (!is_wp_error($attachment_id)) {
        require_once(ABSPATH . "wp-admin" . '/includes/image.php');
        $attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload_file['file'] );
        wp_update_attachment_metadata( $attachment_id,  $attachment_data );
    }
    
    set_post_thumbnail( 209, $attachment_id );
   
    }
}

Share this Tutorial