function simple_video_embedder_video_thumbnail_markup_filter($markup, $post_id) { if (function_exists('p75HasVideo')) { if (p75HasVideo($post_id)) { $markup .= ' ' . p75GetVideo($post_id); } } return $markup; }
function get_video_thumbnail($post_id = null) { // Get the post ID if none is provided if ($post_id == null or $post_id == '') { $post_id = get_the_ID(); } // Check to see if thumbnail has already been found and still exists as a file if (($thumbnail_meta = get_post_meta($post_id, '_video_thumbnail', true)) != '' && wp_remote_retrieve_response_code(wp_remote_head($thumbnail_meta)) === '200') { return $thumbnail_meta; } else { // Gets the post's content $post_array = get_post($post_id); $markup = $post_array->post_content; $markup = apply_filters('the_content', $markup); $new_thumbnail = null; // Simple Video Embedder Compatibility if (function_exists('p75HasVideo')) { if (p75HasVideo($post_id)) { $markup = p75GetVideo($post_id); } } // Checks for the old standard YouTube embed preg_match('#<object[^>]+>.+?https?://www.youtube.com/[ve]/([A-Za-z0-9\\-_]+).+?</object>#s', $markup, $matches); // More comprehensive search for YouTube embed, redundant but necessary until more testing is completed if (!isset($matches[1])) { preg_match('#https?://www.youtube.com/[ve]/([A-Za-z0-9\\-_]+)#s', $markup, $matches); } // Checks for YouTube iframe, the new standard since at least 2011 if (!isset($matches[1])) { preg_match('#https?://www.youtube.com/embed/([A-Za-z0-9\\-_]+)#s', $markup, $matches); } // Checks for any YouTube URL. After http(s) support a or v for Youtube Lyte and v or vh for Smart Youtube plugin if (!isset($matches[1])) { preg_match('#(?:https?(?:a|vh?)?://)?(?:www\\.)?youtube.com/watch\\?v=([A-Za-z0-9\\-_]+)#s', $markup, $matches); } // Checks for any shortened youtu.be URL. After http(s) a or v for Youtube Lyte and v or vh for Smart Youtube plugin if (!isset($matches[1])) { preg_match('#(?:https?(?:a|vh?)?://)?youtu.be/([A-Za-z0-9\\-_]+)#s', $markup, $matches); } // Checks for YouTube Lyte if (!isset($matches[1]) && function_exists('lyte_parse')) { preg_match('#<div class="lyte" id="([A-Za-z0-9\\-_]+)"#s', $markup, $matches); } // If we've found a YouTube video ID, create the thumbnail URL if (isset($matches[1])) { $youtube_thumbnail = 'http://img.youtube.com/vi/' . $matches[1] . '/0.jpg'; // Check to make sure it's an actual thumbnail if (!function_exists('curl_init')) { $new_thumbnail = $youtube_thumbnail; } else { $ch = curl_init($youtube_thumbnail); curl_setopt($ch, CURLOPT_NOBODY, true); curl_exec($ch); $retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // $retcode > 400 -> not found, $retcode = 200, found. curl_close($ch); if ($retcode == 200) { $new_thumbnail = $youtube_thumbnail; } } } // Vimeo if ($new_thumbnail == null) { // Standard embed code preg_match('#<object[^>]+>.+?http://vimeo.com/moogaloop.swf\\?clip_id=([A-Za-z0-9\\-_]+)&.+?</object>#s', $markup, $matches); // Find Vimeo embedded with iframe code if (!isset($matches[1])) { preg_match('#http://player.vimeo.com/video/([0-9]+)#s', $markup, $matches); } // If we still haven't found anything, check for Vimeo embedded with JR_embed if (!isset($matches[1])) { preg_match('#\\[vimeo id=([A-Za-z0-9\\-_]+)]#s', $markup, $matches); } // If we still haven't found anything, check for Vimeo URL if (!isset($matches[1])) { preg_match('#(?:http://)?(?:www\\.)?vimeo.com/([A-Za-z0-9\\-_]+)#s', $markup, $matches); } // If we still haven't found anything, check for Vimeo shortcode if (!isset($matches[1])) { preg_match('#\\[vimeo clip_id="([A-Za-z0-9\\-_]+)"[^>]*]#s', $markup, $matches); } if (!isset($matches[1])) { preg_match('#\\[vimeo video_id="([A-Za-z0-9\\-_]+)"[^>]*]#s', $markup, $matches); } // Now if we've found a Vimeo ID, let's set the thumbnail URL if (isset($matches[1])) { $vimeo_thumbnail = getVimeoInfo($matches[1], $info = 'thumbnail_large'); if (is_wp_error($vimeo_thumbnail)) { return $vimeo_thumbnail; } else { if (isset($vimeo_thumbnail)) { $new_thumbnail = $vimeo_thumbnail; } } } } // Blip.tv if ($new_thumbnail == null) { // Blip.tv embed URL preg_match('#http://blip.tv/play/([A-Za-z0-9]+)#s', $markup, $matches); // Now if we've found a Blip.tv embed URL, let's set the thumbnail URL if (isset($matches[1])) { $blip_thumbnail = getBliptvInfo($matches[1]); if (is_wp_error($blip_thumbnail)) { return $blip_thumbnail; } else { if (isset($blip_thumbnail)) { $new_thumbnail = $blip_thumbnail; } } } } // Justin.tv if ($new_thumbnail == null) { // Justin.tv archive ID preg_match('#archive_id=([0-9]+)#s', $markup, $matches); // Now if we've found a Justin.tv archive ID, let's set the thumbnail URL if (isset($matches[1])) { $justin_thumbnail = getJustintvInfo($matches[1]); $new_thumbnail = $justin_thumbnail; } } // Dailymotion if ($new_thumbnail == null) { // Dailymotion flash preg_match('#<object[^>]+>.+?http://www.dailymotion.com/swf/video/([A-Za-z0-9]+).+?</object>#s', $markup, $matches); // Dailymotion url if (!isset($matches[1])) { preg_match('#(?:https?://)?(?:www\\.)?dailymotion.com/video/([A-Za-z0-9]+)#s', $markup, $matches); } // Dailymotion iframe if (!isset($matches[1])) { preg_match('#https?://www.dailymotion.com/embed/video/([A-Za-z0-9]+)#s', $markup, $matches); } // Now if we've found a Dailymotion video ID, let's set the thumbnail URL if (isset($matches[1])) { $dailymotion_thumbnail = getDailyMotionThumbnail($matches[1]); if (is_wp_error($dailymotion_thumbnail)) { return $dailymotion_thumbnail; } else { if (isset($dailymotion_thumbnail)) { $new_thumbnail = strtok($dailymotion_thumbnail, '?'); } } } } // Metacafe if ($new_thumbnail == null) { // Find ID from Metacafe embed url preg_match('#http://www.metacafe.com/fplayer/([A-Za-z0-9\\-_]+)/#s', $markup, $matches); // Now if we've found a Metacafe video ID, let's set the thumbnail URL if (isset($matches[1])) { $metacafe_thumbnail = getMetacafeThumbnail($matches[1]); if (is_wp_error($metacafe_thumbnail)) { return $metacafe_thumbnail; } else { if (isset($metacafe_thumbnail)) { $new_thumbnail = strtok($metacafe_thumbnail, '?'); } } } } // Return the new thumbnail variable and update meta if one is found if ($new_thumbnail != null) { // Save as Attachment if enabled if (get_option('video_thumbnails_save_media') == 1) { $error = ''; $ch = curl_init(); $timeout = 0; curl_setopt($ch, CURLOPT_URL, $new_thumbnail); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_FAILONERROR, true); // Return an error for curl_error() processing if HTTP response code >= 400 $image_contents = curl_exec($ch); if (curl_error($ch) != null || $image_contents == null) { $curl_error = ''; if (curl_error($ch) != null) { $curl_error = ": <code>" . curl_error($ch) . "</code>"; } $error = new WP_Error('thumbnail_retrieval', __("Error retrieving a thumbnail from the URL <a href=\"" . $new_thumbnail . "\">" . $new_thumbnail . "</a>" . $curl_error . ". If opening that URL in your web browser shows an image, the problem may be related to your web server and might be something your server administrator can solve.")); } curl_close($ch); if ($error != null) { return $error; } else { $upload = wp_upload_bits(basename($new_thumbnail), null, $image_contents); $new_thumbnail = $upload['url']; $filename = $upload['file']; $wp_filetype = wp_check_filetype(basename($filename), null); $attachment = array('post_mime_type' => $wp_filetype['type'], 'post_title' => get_the_title($post_id), 'post_content' => '', 'post_status' => 'inherit'); $attach_id = wp_insert_attachment($attachment, $filename, $post_id); // you must first include the image.php file // for the function wp_generate_attachment_metadata() to work require_once ABSPATH . "wp-admin" . '/includes/image.php'; $attach_data = wp_generate_attachment_metadata($attach_id, $filename); wp_update_attachment_metadata($attach_id, $attach_data); } } // Add hidden custom field with thumbnail URL if (!update_post_meta($post_id, '_video_thumbnail', $new_thumbnail)) { add_post_meta($post_id, '_video_thumbnail', $new_thumbnail, true); } // Set attachment as featured image if enabled if (get_option('video_thumbnails_set_featured') == 1 && get_option('video_thumbnails_save_media') == 1 && get_post_meta($post_id, '_thumbnail_id', true) == '') { if (!update_post_meta($post_id, '_thumbnail_id', $attach_id)) { add_post_meta($post_id, '_thumbnail_id', $attach_id, true); } } } return $new_thumbnail; } }
function gallery_single_post() { global $post; if (function_exists('file_get_contents')) { $shortenedurl = file_get_contents('http://tinyurl.com/api-create.php?url=' . urlencode(get_permalink())); } else { $shortenedurl = urlencode(get_permalink()); } ?> <div id="post-<?php the_ID(); ?> " class="<?php thematic_post_class(); if (function_exists('p75GetVideo')) { if (p75GetVideo($post->ID)) { echo " video"; $video = 1; } } ?> "> <div class="entry-content"> <?php if (function_exists('the_ratings')) { echo the_ratings(); } ?> <h1><?php the_title(); ?> </h1> <?php the_content('' . __('Read More <span class="meta-nav">»</span>', 'thematic') . ''); ?> <ul class="meta"> <?php if (get_post_meta($post->ID, 'designed-by')) { ?> <li class="designer">Designed by: <?php echo get_post_meta($post->ID, 'designed-by', $single = true); ?> </li><?php } ?> <?php if (get_post_meta($post->ID, 'web-url')) { ?> <li class="site-link"><a rel="source" href="<?php echo get_post_meta($post->ID, 'web-url', $single = true); ?> "><?php echo get_post_meta($post->ID, 'web-url', $single = true); ?> </a></li> <li class="delicious"><a href="http://del.icio.us/post?url=<?php echo get_post_meta($post->ID, 'web-url', $single = true); ?> &<?php the_title(); ?> ">Bookmark This (<?php echo get_post_meta($post->ID, 'web-url', $single = true); ?> )</a></li> <li class="twitter"><a href="http://www.twitter.com/home?status=<?php echo str_replace(' ', '+', the_title_attribute('echo=0')); echo '+' . $shortenedurl; echo "+(via+@mixcss)"; ?> " title="Share <?php the_title_attribute(); ?> on Twitter">Tweet This</a></li> <?php } ?> </ul> <div id="nav-below" class="navigation"> <div class="nav-previous"><?php previous_post_link('%link', '<span class="meta-nav">«</span> %title'); ?> </div> <div class="nav-next"><?php next_post_link('%link', '%title <span class="meta-nav">»</span>'); ?> </div> </div> </div> </div><!-- .post --> <div class="artwork-container"> <div class="entry-artwork"> <?php if ($video == 1) { echo p75GetVideo($post->ID); } else { ?> <?php if (get_post_meta($post->ID, 'web-url')) { ?> <a href="<?php echo get_post_meta($post->ID, 'web-url', $single = true); ?> "><img src="<?php if (get_post_meta($post->ID, 'full-image')) { echo get_post_meta($post->ID, 'full-image', $single = true); } else { bloginfo('url'); echo '/wp-content/themes/gallery/images/full-image-default.jpg'; } ?> " alt="<?php echo get_post_meta($post->ID, 'web-url', $single = true); ?> "/></a> <?php } else { ?> <img src="<?php if (get_post_meta($post->ID, 'full-image')) { echo get_post_meta($post->ID, 'full-image', $single = true); } else { echo '/wp-content/themes/gallery/images/full-image-default.jpg'; } ?> " alt="<?php echo get_post_meta($post->ID, 'web-url', $single = true); ?> "/> <?php } ?> <?php } ?> </div> </div> <?php }