Move from old custom field to new post_thumbnails

I’ve just taken over a busy WordPress site that’s got ~800 posts so far.

The site’s been around long enough that it was started up before post_thumbnails was available. They worked around that shortcoming with a custom field called ‘Image’ that held a value of the relative path to the image, e.g., “/wp-content/uploads/2012/11/image.jpg”

The theme is using Tim Thumb to make the different thumb sizes.

I’d love to get away from this and just use the post_thumbnails feature and set the sizes in functions.php and get rid of timthumb.php altogether.

I’ve searched, but haven’t found a good way to make the switch. Any suggestions?

Solutions Collecting From Web of "Move from old custom field to new post_thumbnails"

Had the same issue last week and here is what i did:

if (has_post_thumbnail()) 
    //if the post already has a post thumbnail then just use that
    the_post_thumbnail($size = 'post-thumbnail', $attr = '');
    //if not then convert the custom field to the post thumbnail and display that
    $at_url = get_post_meta($post->ID, 'image', true);
    $at_id = get_image_id_by_url($at_url);
    delete_post_meta($post->ID, 'image');
    if ($at_id){
        set_post_thumbnail($post, $at_id);
        the_post_thumbnail($size = 'post-thumbnail', $attr = '');
        //else just display a default image or not :)