View difference between Paste ID: xvqSvbYk and
SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | // Save Featured Image If It's a youtube video |
2 | add_action('save_post', 'wds_video_sideload_post_thumb'); | |
3 | function wds_video_sideload_post_thumb() { | |
4 | global $post; | |
5 | ||
6 | $youtube_url = get_post_meta( $post->ID, 'videobox', true ); | |
7 | $youtubeid = youtubeid($youtube_url); | |
8 | $thumb_url = 'http://img.youtube.com/vi/'. $youtubeid .'/0.jpg'; | |
9 | ||
10 | require_once(ABSPATH . 'wp-admin/includes/file.php'); | |
11 | require_once(ABSPATH . 'wp-admin/includes/media.php'); | |
12 | set_time_limit(300); | |
13 | ||
14 | if ( ! empty($thumb_url) ) { | |
15 | // Download file to temp location | |
16 | $tmp = download_url( $thumb_url ); | |
17 | ||
18 | // Set variables for storage | |
19 | // fix file filename for query strings | |
20 | preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $thumb_url, $matches); | |
21 | $file_array['name'] = basename($matches[0]); | |
22 | $file_array['tmp_name'] = $tmp; | |
23 | ||
24 | // If error storing temporarily, unlink | |
25 | if ( is_wp_error( $tmp ) ) { | |
26 | @unlink($file_array['tmp_name']); | |
27 | $file_array['tmp_name'] = ''; | |
28 | } | |
29 | ||
30 | // do the validation and storage stuff | |
31 | $thumbid = media_handle_sideload( $file_array, $post->ID, $desc ); | |
32 | // If error storing permanently, unlink | |
33 | if ( is_wp_error($thumbid) ) { | |
34 | @unlink($file_array['tmp_name']); | |
35 | return $thumbid; | |
36 | } | |
37 | } | |
38 | ||
39 | set_post_thumbnail( $post, $thumbid ); | |
40 | } | |
41 | ||
42 | function youtubeid($url) { | |
43 | $domain = parse_url( $url, PHP_URL_HOST ); | |
44 | $url = esc_url( $url ); | |
45 | if ( $domain == 'www.youtube.com' || $domain == 'youtube.com' ) { | |
46 | parse_str( parse_url( $url, PHP_URL_QUERY ) ); | |
47 | $youtubeid = $v; | |
48 | } else { | |
49 | $youtubeid = ''; | |
50 | } | |
51 | return $youtubeid; | |
52 | } |