// Save Featured Image If It's a youtube video add_action('save_post', 'wds_video_sideload_post_thumb'); function wds_video_sideload_post_thumb() { global $post; $youtube_url = get_post_meta( $post->ID, 'videobox', true ); $youtubeid = youtubeid($youtube_url); $thumb_url = 'http://img.youtube.com/vi/'. $youtubeid .'/0.jpg'; require_once(ABSPATH . 'wp-admin/includes/file.php'); require_once(ABSPATH . 'wp-admin/includes/media.php'); set_time_limit(300); if ( ! empty($thumb_url) ) { // Download file to temp location $tmp = download_url( $thumb_url ); // Set variables for storage // fix file filename for query strings preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $thumb_url, $matches); $file_array['name'] = basename($matches[0]); $file_array['tmp_name'] = $tmp; // If error storing temporarily, unlink if ( is_wp_error( $tmp ) ) { @unlink($file_array['tmp_name']); $file_array['tmp_name'] = ''; } // do the validation and storage stuff $thumbid = media_handle_sideload( $file_array, $post->ID, $desc ); // If error storing permanently, unlink if ( is_wp_error($thumbid) ) { @unlink($file_array['tmp_name']); return $thumbid; } } set_post_thumbnail( $post, $thumbid ); } function youtubeid($url) { $domain = parse_url( $url, PHP_URL_HOST ); $url = esc_url( $url ); if ( $domain == 'www.youtube.com' || $domain == 'youtube.com' ) { parse_str( parse_url( $url, PHP_URL_QUERY ) ); $youtubeid = $v; } else { $youtubeid = ''; } return $youtubeid; }