Thursday, January 3, 2013

Hàm lấy ảnh thumbnails từ hình ảnh trong bài viết,featured image và youtube

Chèn vào file functions.php trong thư mục theme

Code:
// Note that your theme must support post thumbnails for this function to work.
// If you are getting an error try adding add_theme_support('post-thumbnails'); to your functions. php file
function vp_get_thumb_url($text, $size){
global $post;
$imageurl="";

// Check to see which image is set as "Featured Image"
$featuredimg = get_post_thumbnail_id($post->ID);
// Get source for featured image
$img_src = wp_get_attachment_image_src($featuredimg, $size);
// Set $imageurl to Featured Image
$imageurl=$img_src[0];

// If there is no "Featured Image" set, move on and get the first image attached to the post
if (!$imageurl) {
// Extract the thumbnail from the first attached imaged
$allimages =&get_children('post_type=attachment&post_mime_type=image&post_parent=' . $post->ID );

foreach ($allimages as $img){
$img_src = wp_get_attachment_image_src($img->ID, $size);
break;
}
// Set $imageurl to first attached image
$imageurl=$img_src[0];
}

// If there's no image attached or inserted in the post, look for a YouTube video
if (!$imageurl){
// look for traditional youtube.com url from address bar
preg_match("/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/watch(\?v\=|\/v\/)([a-zA-Z0-9\-\_]{11})([^<\s]*)/", $text, $matches2);
$youtubeurl = $matches2[0];
if ($youtubeurl)
$imageurl = "http://i.ytimg.com/vi/{$matches2[3]}/1.jpg";
// look for YouTube embed
else preg_match("/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/(v\/)([a-zA-Z0-9\-\_]{11})([^<\s]*)/", $text, $matches2);
$youtubeurl = $matches2[0];
if ($youtubeurl)
// Get the thumbnail YouTube automatically generates
// '0' is the biggest version, use 1 2 or 3 for smaller versions
$imageurl = "http://i.ytimg.com/vi/{$matches2[3]}/1.jpg";
}
// If there is no image attached to the post, look for anything that looks like an image and get that
if (!$imageurl) {
preg_match('/<\s*img [^\>]*src\s*=\s*[\""\']?([^\""\'>]*)/i' , $text, $matches);
$imageurl=$matches[1];
}
// If there is no youtube thumbnail, show a default image
if (!$imageurl) {
$imageurl= "http://killthebeat.com/wp-content/themes/buzznews/images/thumbz.jpg";
}

// Spit out the image path
return $imageurl;
}

Chèn đoạn code sau vào nơi bạn muốn hiện ảnh thumbnails

Code:
<?php
// Show featured image, or first image if no featured, or YouTube thumbnail
if (function_exists('vp_get_thumb_url')) {

// Set the desired image size. Swap out 'thumbnail' for 'medium', 'large', or custom size
$thumb=vp_get_thumb_url($post->post_content, 'thumbnail');
if ($thumb!='') { ?>

<div class="image_frame">
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><img class="homethumb" src="<?php echo $thumb; ?>" alt="<?php get_the_title(); ?>" /></a>
</div>
<?php
}
}
?>
Demo: Kiếm tiền từ wap


P/s: Hàm trên là mình contact với admin của vietflava.com được hướng dẫn tận tình nhưng vẫn ko hiện thumb từ youtube dc, anh em nào test thử xem dc không nhé

No comments:

Post a Comment