如果你曾和我一样无意中进入wordpress的uploads文件夹,会发现这里有很多同名的图片,所不同的是图片尾部跟随的数字。没错,这些图片就是用户编辑文章时所上传的图片,同一图片位于站点不同的位置时,往往会以不同的尺寸呈现,比如在首页的时候,图片可能只是小小的一块,而到了文章展示页,我们有足够的空间来展示更大尺寸的图像。在较小的图像展示区域应用原图的话,显示效果上对比小尺寸图像并不会有质的提升,却会极大的浪费有限的带宽资源,于是热情的wordpress在用户上传图片的同时,自动为用户生成了3种不同尺寸的缩略图。
缩略图的尺寸
这三种缩略图的尺寸时允许用户自定义,我们可以在后台的设置->多媒体中对它们进行设置,遗憾的是,除了第一种尺寸允许裁剪图像以匹配尺寸之外,其他的两种尺寸并没有裁剪的选项(笔者使用的版本较老,为wordpress3.6.1),这也就意味着,其他两种缩略图的尺寸并不可控,就像下图中,虽然填写了宽度300,高度也是300,但当用户上传一张900300的图片,该选项生成的缩略图会是一张300100等比例缩放的小图片。笔者使用的主题是通过自带主题twentyten修改的,仅使用了最小的缩略图最为首页的文章图片,对于笔者而言,其他两种尺寸的图片暂时是没有用武之地的,遇到这样的情况,我们也可以选择不生成某个规格的缩略图。避免生成缩略图的方法很简单,只需要将图片的高度与宽度都设置为0就可以了。
设置好参数之后记得刷新一下页面,然后再去上传图片测试,否则可能产生修改未生效的现象。
不同尺寸缩略图的调用
要在主题中使用缩略图,首先需要注册主题的缩略图功能,同样是去改动functions.php文件,在其中加入如下语句:
add_theme_support( 'post-thumbnails' );
- thumbnail(小尺寸)
- medium(中等大小)
- large(大尺寸)
在主循环中调用不同缩略图的命令如下:
the_post_thumbnail('thumbnail');
the_post_thumbnail('medium');
the_post_thumbnail('large');
在主循环外调用缩略图的命令如下:
get_the_post_thumbnail(get_the_id(),'thumbnail');