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?


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 :)
  • 1
    If I am reading it right, it is intended to modify post thumbnails on the fly as needed but it could pretty easily be modified to loop through all the posts and convert everything at once. +1 – s_ha_dum Dec 9 '12 at 22:11
  • yep, and yep :) – Bainternet Dec 9 '12 at 22:21
  • Thank you so much - this is brilliant! For the get_image_id_by_url function, I used the one posted here: philipnewcomer.net/2012/11/… And the only change I had to make to your function was to append the blog's url to the beginning of my Image field value, since that wasn't being included. – NatalieMac Dec 10 '12 at 2:32

protected by Community Apr 15 '13 at 18:14

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.