Add url from Custom Field as 'Featured Image'. Code not working

I’m trying to migrate a site to WP. We have a whole bunch of pictures, and I have done some research and figured — I think — my best bet is a CSV import of the data, storing the relative URL of the image as a custom field.

So, I found this –which looks ideal — and I implemented it thus (in functions.php with a global call added as I was getting a ‘no object’ error):

function store_cf_featured_image() {
global $post,$wpdb;

$uploads = wp_upload_dir();

// Get all attachment IDs and filenames
$results = $wpdb->get_results("SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = '_wp_attached_file'");

// Create an 'index' of attachment IDs and their filenames
$attachments = array();
foreach ($results as $row)
    $attachments[ intval($row->post_id) ] = $row->meta_value;

// Get all featured images
$images = $wpdb->get_results("SELECT post_id, meta_value AS 'url' FROM $wpdb->postmeta WHERE meta_key = 'featured_image'");

// Loop over each image and try and find attachment post
foreach ($images as $image) {
    if (preg_match('#^https?://#', $image->url))
        $image->url = str_replace($uploads['baseurl'], '', $image->url); // get relative URL if absolute

    $filename = ltrim($image->url, '/');

    if ($attachment_ID = array_search($filename, $attachments)) {
        // found attachment, set post thumbnail and delete featured image
        update_post_meta($image->post_id, '_thumbnail_id', $attachment_ID);
        delete_post_meta($image->post_ID, 'featured_image');



add_action( 'init', 'store_cf_featured_image' );

However, when I put a link in my custom field ‘featured_image’, and save it… nothing. No errors, but no nothing. I update the post and come back to it, but the link is still just a link the the custom field and no ‘featured image’ has been set.

Does anyone have any ideas what the issue might be? an am I right in thinking this will store the image as part of built in ‘Media Library’, now?

AlsoAlso: Will I be able to adapt this code to pull in Alt text etc for each image from custom fields.

Any input greatly appreciated! Thanks.

Solutions Collecting From Web of "Add url from Custom Field as 'Featured Image'. Code not working"