• 本站搬迁至Linode机房,购买Linode 1G机型仅需$10/月,点此访问官网
  • 百度口碑求好评,http://koubei.baidu.com/s/www.zhiyanblog.com
  •    1年前 (2014-12-17)  WordPress |   22 条评论  1826 
    文章评分 7 次,平均分 3.0

    利用timthumb.php实现WordPress全自动日志缩略图功能。timthumb.php这是一个专门为 WordPress 而开发的缩略图应用的项目。有点类似于插件,但是又和 WordPress 插件不同,因为它不是被上传于 plugins 文件夹下,而是需要上传到你的主题文件夹中。你可以在这里了解和下载最新版本的 timthumb.php,一般默认配置也就可以了,如果想进一步优化可以根据需要修改 timthumb.php 里前30行的参数

    默认情况下timthumb.php是不支持外链图片的,需要修改一下timthumb.php的参数实现支持外链图片

    define ('ALLOW_EXTERNAL', TRUE);
    define ('ALLOW_ALL_EXTERNAL_SITES', TRUE);
    

    下面就是结合了 timthumb.php 和 WordPress 自带的缩略图功能,支持站外链接图片,自动缓存图片的可以全自动日志缩略图功能的代码。代码如下:

    function post_thumbnail( $width = 100,$height = 80 ){
    global $post;
    if( has_post_thumbnail() ){ //有缩略图,则显示缩略图
    $timthumb_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
    $post_timthumb = '<img src="'.get_bloginfo("template_url").'/timthumb.php?src='.$timthumb_src&#91;0&#93;.'&h='.$height.'&w='.$width.'&zc=1" alt="'.$post->post_title.'" class="thumb" />';
    echo $post_timthumb;
    } else{
    if ($postid<1)
    $postid = get_the_ID();
    $image = get_post_meta($postid, "image", TRUE); // 调用自定义域图片
    $post_timthumb = '<img src="'.get_bloginfo("template_url").'/timthumb.php?src='.$image.'&h='.$height.'&w='.$width.'&zc=1" alt="'.$post->post_title.'" class="thumb" />';
    if ($image != null or $image != '') {
    echo $post_timthumb;
    } else {
    $post_timthumb = '';
    ob_start();
    ob_end_clean();
    $output = preg_match('/<img.+src=&#91;\'"&#93;(&#91;^\'"&#93;+)&#91;\'"&#93;.*>/i', $post->post_content, $index_matches); //获取日志中第一张图片
    $first_img_src = $index_matches [1]; //获取该图片 src
    if( !empty($first_img_src) ){ //如果日志中有图片
    $path_parts = pathinfo($first_img_src); //获取图片 src 信息
    $first_img_name = $path_parts["basename"]; //获取图片名
    $first_img_pic = get_bloginfo('wpurl'). '/cache/'.$first_img_name; //文件所在地址
    $first_img_file = ABSPATH. 'cache/'.$first_img_name; //保存地址
    $expired = 604800; //过期时间
    if ( !is_file($first_img_file) || (time() - filemtime($first_img_file))> $expired ){
    copy($first_img_src, $first_img_file); //远程获取图片保存于本地
    $post_timthumb = '<img src="'.$first_img_src.'" alt="'.$post->post_title.'" class="thumb" />'; //保存时用原图显示
    }
    $post_timthumb = '<img src="'.get_bloginfo("template_url").'/timthumb.php?src='.$first_img_pic.'&h='.$height.'&w='.$width.'&zc=1" alt="'.$post->post_title.'" class="thumb" />';
    } else { //如果日志中没有图片,则显示默认
    $post_timthumb = '<img src="'.get_bloginfo("template_url").'/images/default.gif" alt="'.$post->post_title.'" class="thumb" />';
    }
    echo $post_timthumb;
    }
    }}
    

    把上述代码放在functions.php 里,然后再用

    <?php post_thumbnail( 100,100 ) ?>

    这样调用即可,其中的$width$height 是必须的参数。上述代码意思是如果文章有wordpress自带缩略图,则调用自带缩略图,没有的话则调用自定义域“image”图片作为缩略图,再没有的话就自动截取文章第一张图做为缩略图,如果连图片都没有的话,那就显示一张默认图片。

     

    原文链接:,转发请注明来源!

    关于

    发表评论

    表情 格式

    1. 主题堪称完美,32个赞

      yutaok 评论达人 LV.5 4周前 (12-09) [0] [0]
    2. 没搞懂这是干什么的

      滕绍武博客 评论达人 LV.1 4周前 (12-06) [0] [0]
    3. 大哥,缩略图不显示,timthumb.php怎么改啊

      蚊子 评论达人 LV.1 2个月前 (11-18) [0] [0]
    4. :sad: 我来支持啦

      ficy520 评论达人 LV.6 2个月前 (11-04) [0] [0]
    5. 很好,收藏了

      z_devil 评论达人 LV.5 3个月前 (10-15) [0] [0]
    6. 已读,很有帮助

      独醉寒风 评论达人 LV.1 7个月前 (05-28) [1] [0]
    7. 这个和直接调用图片相比,哪个对服务器压力小一些呢

      skating507 评论达人 LV.4 7个月前 (05-27) [1] [0]
    8. 这个很好,要好好学习。

      外号陈半仙 评论达人 LV.1 8个月前 (04-27) [0] [1]
    9. 很好,收藏了

      hao123 评论达人 LV.4 9个月前 (04-14) [0] [0]
    10. 这个很有用!!!

      大庆奈特丽婚纱 评论达人 LV.1 9个月前 (04-12) [0] [0]
    11. good!讚!

      jlliu0226 评论达人 LV.1 10个月前 (03-22) [0] [0]
    12. 不错,学习了

      aisino.ou 评论达人 LV.3 11个月前 (02-16) [0] [0]
    13. 很不错,学习了!

      奋斗 评论达人 LV.1 11个月前 (02-11) [0] [0]
    14. 其他都好就是这个雪花好烦人那

      shaozhiwei 评论达人 LV.4 1年前 (2014-12-27) [0] [0]
    15. 主题很强大,谢谢博主!

      logs 评论达人 LV.1 1年前 (2014-12-24) [0] [0]
    16. 爱你不是两三天,每月看你很多遍。

      尚吾网 评论达人 LV.1 1年前 (2014-12-24) [0] [0]
    17. 嘿嘿,现在很多人好像都在使用骑牛的缩略图功能。。。 不过timthumb.php 也很好….写完这条评论就有100积分了,不容易啊 …我需要300积分。

      艾尔云 评论达人 LV.5 1年前 (2014-12-18) [0] [0]
    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册