• Hi,
    I have written this script to move Custom Post Meta Field Images to Use the New Featured Thumbnail/Image function built into WordPress…

    What it does is move/copy any full url images local or remote (depending on your server) from WordPress’s Custom Meta Fields to the WordPress Media Library and attaches the Image to Featured Image Function for that post…

    Anyway Thought I would share it works for me… Just put it in your functions.php file
    and it will move the as and when needed…

    (note: make sure your wordpress upload directory is chmod 777)…

    function postmeta_img_update() {
    global $post;
    // If Custom Post Meta Field for a Image/Thumnail Exists
    if( get_post_meta($post->ID, "Image URL", true) ):
    
    // Get Image Location and File Extention
    $img = get_post_meta($post->ID, "Image URL", true);
    $ext = substr(strrchr($img,'.'),1);
    
    // WordPress Upload Directory to Copy to (must be CHMOD to 777)
    $uploads = wp_upload_dir();
    $copydir = $uploads['path']."/";
    
    // Code to Copy Image to WordPress Upload Directory (Server Must Support file_get_content/fopen/fputs)
    $data = file_get_contents($img);
    $filetitle = strtolower(str_replace(array(' ', '-', '.', '(', ')', '!', '@', '#', '$', '%', '^', '&', '*', '_', '=', '+'), "-", get_the_title()));
    $file = fopen($copydir . "$filetitle-$post->ID.$ext", "w+");
    fputs($file, $data);
    fclose($file);
    
    // Insert Image to WordPress Media Libarby
    $filepath = $uploads['path']."/$filetitle-$post->ID.$ext";
    
    $wp_filetype = wp_check_filetype(basename($filepath), null );
    $attachment = array(
         'post_mime_type' => $wp_filetype['type'],
         'post_title' => get_the_title(),
         'post_content' => 'Image for '.get_the_title(),
         'post_status' => 'inherit'
    	);
    
    wp_insert_attachment( $attachment, $filepath, $post->ID);
    
    // Get Attachment ID for Post
    global $wpdb; $attachment_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_parent = '$post->ID' AND post_status = 'inherit' AND post_type='attachment' ORDER BY post_date DESC LIMIT 1");
    // Attached Image as Featured Thumbnail in Post
    update_post_meta($post->ID, "_thumbnail_id", $attachment_id);
    
    // Removes Custom Meta Field Image URL. This stop this function running again for the updated post.
    delete_post_meta($post->ID, "Image URL");
    
    endif;
    
    }
    add_action('the_post','postmeta_img_update');

    Kind Regards,
    Chris

Viewing 3 replies - 1 through 3 (of 3 total)
  • Wow, this is great. I’ve been looking for a plugin like this for a while. I’m assuming that I just need to put this code into the functions.php file?

    so i did this… and it appeared to be what i wanted, but now none of the “Featured images” will let my theme resize them into thumbnails, so i get a jumbled mess of huge images that should be thumbnail-ized.

    Any idea how to fix this?

    and actually, it only appears to have created “featured images” for the first several posts (most recent) on my blog. older ones still have the custom field images.

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Post Meta Field Images to Featured Thumbnail/Image’ is closed to new replies.