北极寒流 » 网络资源 » timthumb.php_强大的wordpress缩略图工具 - 2013.07.28

timthumb.php_强大的wordpress缩略图工具

虽然wordpress自身已经提供缩略图功能支持,不过该功能却有些不尽人意的地方,例如wordpress自带的缩略图只能自动裁剪一个正方形的图片,而不能裁剪成长方形的;又比如说,只能接受站内或者说多媒体库里的图片,对站外图片就无从下手了;再比如说图片所在文件夹不是同一个,不方便管理。总之,Wordpress 自带的缩略图功能并没有我们想象的那样强大,这时候我们需要第三方文件 timthumb.php 项目来帮助我们。

timthumb.php介绍

timthumb.php是一个非常有用也是很神奇的一个PHP第三方文件,可以对任何图片裁剪到任何尺寸(所谓的裁剪,并不是像CSS那样强制压缩图片,然后生成,而是将图片按照需要的大小的比例进行裁切,去掉不要的部分,比例相同后再放大或者缩小就不会变形),并缓存在一个特定的文件夹,方便及时删除,而且并不是直接缓存图片,而是以“.txt”的形式缓存,减少空间的占用。

timthumb.php该如何使用?

1、下载最新timthumb.php官方原版,下载地址http://code.google.com/p/timthumb/

2、在你主题更目录下新建thumbnail文件夹,把下载的timthumb.php放入其中。

3、修改主题的functions.php文件,在最后的?>”之后加入下面的代码

<?php

//添加特色缩略图支持
if ( function_exists('add_theme_support') )add_theme_support('post-thumbnails');

//输出缩略图地址
function Bing_post_thumbnail_src(){
    global $post;
    if( $values = get_post_custom_values("thumb") ) {    //输出自定义域图片地址
        $values = get_post_custom_values("thumb");
        $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)){    //如果日志中没有图片,则显示thumbnail/random下的随机图片
            $random = mt_rand(1, 10);
            echo get_bloginfo('template_url');
            echo '/thumbnail/random/'.$random.'.jpg';
            //如果日志中没有图片,则显示默认图片
            //echo '/thumbnail/random/default_thumb.jpg';
        }
    };
    echo $post_thumbnail_src;
}
?>

<?php
//定义缩略图
function Bing_thumbnail($timthumb_w,$timthumb_h){
    ?><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">
<?php if( dopt('Bing_timthumb') ) { ?><img src="<?php bloginfo('template_directory'); ?>/includes/thumbnail/timthumb.php?src=<?php echo Bing_post_thumbnail_src() ?>&h=<?php echo $timthumb_h ?>&w=<?php echo $timthumb_w ?>&zc=1" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" /><?php } else { ?><img src="<?php echo Bing_post_thumbnail_src() ?>" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" /><?php } ?></a>
<?php } ?>

上述代码还运用到了PHP里包含PHP(运行php) 的功能哦

4、这样在主题任何地方加入如下函数就可以调用带<a>标签的缩略图啦

<?php Bing_thumbnail(150,120); ?>
如果没有缩略图生成,请检查thumbnail文件夹下的cache文件夹是否有777写的权限(没有cache文件夹请自己新建)
28

timthumb.php_强大的wordpress缩略图工具

分享到:

最受欢迎的