wordpress自带的缩略图功能会对每次上传的所有图片根据设置的图片尺寸进行裁剪,并把原图和裁剪后的图片保存在网站空间中,图片只裁剪一次,更改设置的尺寸不会重新生成,这样不仅占用主机空间,以后改版网站时还要使用同一尺寸的图片,否则图片会失真或变形。timthumb.php是专门针对wordpress开发的集成在wordpress主题中的缩略图应用项目,只会对调用的图片进行裁剪,而且是在有访问请求时才临时生成一个配置文件,在一定时间内缓存在空间中,不会生成多余的缩略图。

温馨提示:

  • timthumb需要主机支持GD库;
  • timthumb处理过程需要一定的服务器资源支持;
  • timthumb不支持外链图片;
  • timthumb出现过漏洞;
  • 作者表示不再更新timthumb。

timthumb.php使用方法:

1、下载timthumb.php文件:https://code.google.com/p/timthumb/ 或 http://pan.baidu.com/s/1i4P2SMp

2、上传timthumb.php到当前主题文件夹,并在该主题文件夹中创建一个命名为cache的文件夹,设置cache文件夹的权限为755或777

3、关闭wordpress缩略图功能,教程:http://www.boke8.net/wordpress-close-thumbnail.html

4、在主题的functions.php文件添加以下代码:

  1. //输出缩略图地址
  2. function post_thumbnail_src(){
  3. global $post;
  4. if( $values = get_post_custom_values("thumbnail") ) { //输出自定义域图片地址
  5. $values = get_post_custom_values("thumbnail");
  6. $post_thumbnail_src = $values [0];
  7. } elseif( has_post_thumbnail() ){ //如果有特色缩略图,则输出缩略图地址
  8. $thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
  9. $post_thumbnail_src = $thumbnail_src [0];
  10. } else {
  11. $post_thumbnail_src = '';
  12. ob_start();
  13. ob_end_clean();
  14. $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  15. $post_thumbnail_src = $matches [1] [0]; //获取该图片 src
  16. if(empty($post_thumbnail_src)){
  17. $post_thumbnail_src = get_bloginfo('template_url')."/images/no-image.jpg"; //如果日志中没有图片,则显示默认图片
  18. }
  19. };
  20. echo $post_thumbnail_src;
  21. }

上面的代码表示先获取自定义域的图片,如果没有设置自定义域图片则获取特色图像,如果没有设置特色图像获取内容首张图片,如果内容也没有图片,则显示默认图像no-image.jpg。

自定义域图片教程:http://www.boke8.net/wordpress-image-thumbnail.html

特色图像教程:http://www.boke8.net/wordpress-built-in-thumbnail.html

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

  1. <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 : 生成图片的高度,如果高度和宽度都没有指定,则默认为100*100
zc : 生成图片的缩放模式,可选值0, 1, 2, 3, 默认为1。0:根据传入的值进行缩放(不裁剪), 1:以最合适的比例裁剪和调整大小(裁剪), 2:按比例调整大小,并添加边框(裁剪),2:按比例调整大小,不添加边框(裁剪)
webshot : 如果此值为真则进行截图操作
q : 生成图片的质量,默认90
a : 超出部分的裁剪位置,和缩放模式有关,可选值t, b, l, r, 默认为从顶部裁剪
f : 需要对生成后的图片使用一些过滤器的话,则在这里设置不同过滤器的代码和值。
s : 是否对生产的图片进行锐化处理
cc : 生成图片的背景画布颜色
ct : 生成png图片时背景是否透明

在Wordpress上使用timthumb.php生成缩略图一般只需要用到src、w、h、zc四个参数,其他参数使用默认值即可。

附修补timthumb.php漏洞问题:

  • 使用最新版的timthumb.php(但作者表示不再更新)
  • 服务器目录权限设置
  • 删除白名单

在文件中找到以下代码,删除或注释掉

  1. // external domains that are allowed to be displayed on your website
  2. $allowedSites = array (
  3. 'flickr.com',
  4. 'picasa.com',
  5. 'blogger.com',
  6. 'wordpress.com',
  7. 'img.youtube.com',
  8. );
 
本文地址:http://www.zhaowy.cn/build/wordpress/171/.html
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

使用timthumb.php截取文章缩略图的更多相关文章

  1. wordpress自动截取文章摘要代码

    想要实现 wordpress 首页显示摘要有几种方法: 第一种,可以在写文章的时侯在需要分割的地方加入<!–more–>标签,但在输出首页摘要的同时,也会使feed只显示摘要,不方便读者阅 ...

  2. wordpress调用文章摘要,若无摘要则自动截取文章内容字数做为摘要

    以下是调用指定分类文章列表的一个方法,作者如果有填写文章摘要则直接调用摘要:如果文章摘要忘记写了则自动截取文章内容字数做为摘要.这个方法也适用于调用description标签 <ul> & ...

  3. ios——MPMoviePlayerController截取视频缩略图 播放视频又可以截取视频缩略图

    #import <AVKit/AVKit.h>#import <MediaPlayer/MediaPlayer.h>#import "ViewController.h ...

  4. iOS截取视频缩略图的两种方法

    前言: 看完了使用MPMoviePlayerController播放在线视频,在实际应用中有时候须要获取视频的缩略图,我们来看看怎样截取指定时间内的视频缩略图. 一  使用MPMoviePlayerC ...

  5. WordPress主题开发:开启文章缩略图功能

    安装wordpress后,默认的主题里编辑文章都会看见这个缩略图功能,那么我们自己开发的新主题怎么有这个功能呢? 目录: 一.开启缩略功能 二.设置缩略图大小 三.编辑文章,上传缩略图 四.调用缩略图 ...

  6. PHP 用 mb_strimwidth() 截取文章摘要

    按字符宽度获取 mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker [, string $encod ...

  7. Windows下使用ffmpeg与java实现截取视频缩略图

    [ffmpeg.exe可执行文件获取]: 网上搜索后得到编译好的ffmpeg文件,下载地址:http://download.csdn.net/source/453719 [安装]: 将下载的文件解压, ...

  8. 由文章缩略图读出banner图

    <div class="banner"> {dede:sql sql="select litpic FROM #@__archives where typei ...

  9. WordPress D8 主题当中截取文章首图并显示的函数

    取自 WordPress D8 主题; 路径 theme\d8\modules ; if ( ! function_exists( 'deel_thumbnail' ) ) : function de ...

随机推荐

  1. iOS 图像处理 - 图像拼接

    解决这个问题:将两个图像拼接在一起 前提:须要加入Framework:CoreGraphics.framework 源代码: - (UIImage *) combine:(UIImage*)leftI ...

  2. Unix网络编程 高级IO套接字设置超时

    我们知道.对于一个套接字的读写(read/write)操作默认是堵塞的.假设当前套接字还不可读/写,那么这个操作会一直堵塞下去,这样对于一个须要高性能的server来说,是不能接受的.所以,我们能够在 ...

  3. MySQL基础教程-绝对推荐

    https://wenku.baidu.com/view/1acfe579ee06eff9aef80752.html?from=search MySQL--公司培训PPT Mysql体系结构以及与Or ...

  4. NYOJ15括号匹配

    NYOJ15括号匹配 括号匹配(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:6   描述 给你一个字符串,里面只包含"(",")" ...

  5. 杂项-人物:Alan cooper

    ylbtech-杂项-人物:Alan cooper Alan Cooper ,“VB之父”“交互设计之父”,荣获视窗先锋奖(Microsoft Windows Pioneer)和软件梦幻奖(Softw ...

  6. C++ 对象的赋值和复制 基本的

    对象的赋值 如果对一个类定义了两个或多个对象,则这些对象之间是可以进行赋值,或者说,一个对象的值可以赋值给另一个同类的对象.这里所指的值是指对象中所有数       据的成员的值.对象之间进行赋值是“ ...

  7. 洛谷P1894 [USACO4.2]完美的牛栏The Perfect Stall(二分图)

    P1894 [USACO4.2]完美的牛栏The Perfect Stall 题目描述 农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术.不幸的是,由于工程问题,每个牛栏都不一样.第一个星 ...

  8. 移动App服务端架构设计

      我从事手机app服务端开发现在已经是3个年头,自己也整理出了一套相对好用的服务架构,写出来,跟大家一起分享.如有不足,还请多指教. 一:基础流程图. 其实有一点还需要加上,就是对json的压缩和加 ...

  9. idea使用svn

    一.在idea中配置svn 二.导出maven项目 连接svn 点击checkout 点击ok就可以 到Commit Changes 这里有几个选项需要了解的: Auto-update after c ...

  10. golang 随机数/域名校验

    //随机数生成要用到的 const letterBytes = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ...