13071077710
您的当前位置: 首页 > wordpress > WordPress使用Timthumb获取缩略图

WordPress使用Timthumb获取缩略图

时间: 2016-3-30

在WordPress主题在缩略图功能上,使用的是WordPress自带的图片处理功能(特色图片)+Timthumb截取缩略图比起wordpress自带的缩略图裁剪功能更让人喜欢。

对于现在的WP主题来说,不再像以往那样,缩略图只是展示在单一的位置上。现在的WP主题,文章的缩略图需要适用网站不同位置的展示。那么缩略图需要一一满足生成的在每个位置都能完美的展示、图片不变形等等。那么,目前Timthumb是一个不错的解决方案。

Timthumb生成缩略图还有一个好处,就是他不像WP自带缩略图那样,给你的服务器里面添加裁切一大堆大小不同的图片放你的空间里,这显然没有必要。Duang一下,你的服务器都是图片,这样大家都是拒绝的!浪费空间!

timthumb使用方法

要使用timthumb,需要主机支持GD库,现在一般的收费主机都是支持的。下载并将其上传到你的主题,然后在和timthumb.php同一个目录下,新建一个cache文件夹,linux主机用户,要设置cache文件夹为 755 或 777 权限。点击下载timthumb下载 OR 点击这里下载

在主题 functions.php 中添加如下代码

//添加特色缩略图支持
if ( function_exists('add_theme_support') )add_theme_support('post-thumbnails');
 
//输出缩略图地址
function post_thumbnail_src(){
 global $post;
 if( $values = get_post_custom_values("thumbnail") ) { //输出自定义域图片地址
 $values = get_post_custom_values("thumbnail");
 $post_thumbnail_src = $values [0];
 } elseif( has_post_thumbnail() ){ //如果有特色图像缩略图,则输出特色图像缩略图地址
 $thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
 $post_thumbnail_src = $thumbnail_src [0];
 } else {
 $post_thumbnail_src = '';
 ob_start();
 ob_end_clean();
 $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
 $post_thumbnail_src = $matches [1] [0]; //获取该图片 src
 if(empty($post_thumbnail_src)){ //如果日志中没有图片,以下两种方案二选一
 //如果日志中没有图片,则显示随机图片
 $random = mt_rand(1, 10);
 //echo get_bloginfo('template_url');
 //echo '/images/pic/'.$random.'.jpg';
 $post_thumbnail_src = get_bloginfo('template_url').'/images/pic/'.$random.'.jpg';
 
 //如果日志中没有图片,则显示默认图片
 //$post_thumbnail_src = get_bloginfo('template_url')."/images/no-image.jpg";
 }
 };
 echo $post_thumbnail_src;
}

在需要显示缩略图的地方添加调用代码:

<img src="<?php bloginfo('template_url');?>/timthumb.php?src=<?php echo post_thumbnail_src(); ?>&h=150&w=200&zc=1" alt="<?php the_title(); ?>" class="thumbnail"/>

注解:其中 src/w/h/zc 比较常用

src : 图片地址,或是需要进行截图操作的网页地址;
w : 缩略图宽度,如果宽度或高度只设置了一个值,则根据其中一个值进行等比缩放;
h : 缩略图高度,如果高度和宽度都没有指定,则默认为100*100;
zc : 图片的缩放模式,可选值0/1, 默认为1表示裁剪,0表示按设置的高宽压缩,不裁剪;
q : 生成图片的质量,默认90;
a : 超出部分的裁剪位置,和缩放模式有关,可选值t, b, l, r, 默认为从顶部裁剪;
f : 需要对生成后的图片使用一些过滤器的话,则在这里传不同过滤器的代码和值,具体操作方法可见下面文件的第821行注解;
s : 是否对生产的图片进行锐化处理;
cc : 生成图片的背景画布颜色;
ct : 生成png图片时背景是否透明;

使用timthumb的时候要注意的问题:

博客使用图片的来源问题。timthumb默认只对自己博客本地上的图片和预留的图片来源进行缩略,如果你需要把图片存放到七牛CDN或者又拍云等第三方图床,那就比较头疼了,你会发现网站上的图片都变成了叉叉,图片没法显示了。

解决问题的方法有两种,都是修改timthumb文件:

1、找到33行的define (‘ALLOW_ALL_EXTERNAL_SITES’, false);将里面的false改成true,这样所有外站图片都可以显示了,不过默认不建议这么改,安全级别低。

2、找到126行的$ALLOWED_SITES = array (,你会发现里面预留有许多的网址,只要把你外站图片地址的根域名按它的格式往里添加就好了,比如用的比较多的新浪微博的图片:’sinaimg.cn’,。

Copyright © 2013-2019 子歇    版权所有   网站地图