OSS图片处理代替timthumb.php生成WORDPRESS缩略图

2019-04-1007:05:04网站建设与开发Comments2,424 views字数 1387阅读模式

首页缩略图是利用主题自带的timthumb.php生成的。相较于WordPress自己裁剪的参差不齐、大小不一的缩略图,这的确是一个不错的解决方案,但是也使得博客不能做到彻底的动静分离。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

这样生成的缩略图的URL一般为文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

https://www.orgleaf.com/wp-content/themes/lensnews/includes/timthumb.php?src=https://img.orgleaf.com/2017/05/a_picture.jpg&h=338&w=600

虽然我已经将图片存放到了img.orgleaf.com这个域名下的OSS里,但是缩略图却是timthumb.php从img.orgleaf.com里获取图片、处理后得到的,实际上仍然是从www.orgleaf.com中下载。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

这样问题就大了,网站服务器的带宽一般不大,比如我这种1M(最大125kb/s)的小水管,与OSS(尤其搭配CDN之后)的海量带宽根本没法比,并发处理能力也不是也个级别。之前为了解决这个问题,我将ECS的带宽升级为2M,不过也是治标不治本,效果不算很好,成本却不低(升级成6个月的2M带宽花了我200大洋)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

另外,timthumb.php对图片的处理也会消耗一定的服务器资源。存在安全隐患。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

解决思路

后来我看到OSS其实自带图片处理功能。如果能从OSS中直接得到处理好的图片,同时解决了加载速度和图片样式的问题,岂不美哉?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

简单看了一下OSS有关图片处理的文档,发现二者都是通过URL尾部的参数指定图片的缩放大小,OSS则是使用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

http://example.com/pic.jpg?x-oss-process=image/[处理类型],x_100,y_50[宽高等参数]

根据我对php粗浅有限的了解,实现起来应该不难!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

Code

这儿不便直接引用本站主题作者的代码,就从网上的一篇教程WordPress使用timthumb.php截取文章缩略图上扒了一个类似的代码下来。部分原代码是这样的:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

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

只需要保留.$height.和.$width.这两个变量就行了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

经过反复测试,最适合的OSS图片处理参数是文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

?x-oss-process=image/resize,m_fill,h_高度,w_宽度,limit_0

,效果与timthumb.php的处理效果基本相同。(其实找到最适合的处理参数才是最麻烦的事,我试了一中午……)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

那么应该是这样的:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

<img src="<?php%20echo%20post_thumbnail_src();%20?>?x-oss-process=image/resize,m_fill,h_'.$height.',w_'.$width.',limit_" alt="<?php the_title(); ?>" class="thumbnail"/>

效果

OSS图片处理代替timthumb.php生成WORDPRESS缩略图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

不开启lazyload,首页加载完毕总共用了1.89s。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

OSS图片处理代替timthumb.php生成WORDPRESS缩略图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11304.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/cms/11304.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定