Post Meta Field Images to Featured Thumbnail/Image
-
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)
Viewing 3 replies - 1 through 3 (of 3 total)
- The topic ‘Post Meta Field Images to Featured Thumbnail/Image’ is closed to new replies.