wordpress多站点不支持timthumb.php的解决办法

2018年2月23日13:50:25 发表评论 16 views

2018Timthumb.php是款非常好的图片缩略图裁剪插件,但如果在wordpress多站点形式下运用timthumb.php来完成缩略图裁剪,图片不会显现。查看后发现导致该问题的原因有两方面,一方面是出于安全考虑,Timthumb.php除了支撑指定的几个网站的外链图片外,不支撑其它任何外链图片;另一方面则是由于对本机图片地址的处理导致。处理的办法很简单,仅需求增加支撑的外链域名,和修改对机图片处理的代码即可。

操作步骤:

编辑timthumb.php文件,找到以下代码(大概131行):

  1. if(! isset($ALLOWED_SITES)){
  2.     $ALLOWED_SITES = array (
  3.         'flickr.com',
  4.         'staticflickr.com',
  5.         'picasa.com',
  6.         'img.youtube.com',
  7.         'upload.wikimedia.org',
  8.         'photobucket.com',
  9.         'imgur.com',
  10.         'imageshack.us',
  11.         'tinypic.com',
  12.     );
  13. }

在最后一个域名下添加wordpress多站点使用的域名,如:

  1. if(! isset($ALLOWED_SITES)){
  2.     $ALLOWED_SITES = array (
  3.         'flickr.com',
  4.         'staticflickr.com',
  5.         'picasa.com',
  6.         'img.youtube.com',
  7.         'upload.wikimedia.org',
  8.         'photobucket.com',
  9.         'imgur.com',
  10.         'imageshack.us',
  11.         'tinypic.com',
  12.         'boke8.net' //新增加支持的域名
  13.     );
  14. }

提示:也可以删除不想支持的站点域名。需要注意的是不要增加不信任或不熟悉的域名,因为会被人利用挂病毒之类…
2、在timthumb.php文件,找到以下代码(大概220行):

  1. $this->src = preg_replace('/https?:\/\/(?:www\.)?' . $this->myHost . '/i', ''$this->src);

把该行代码删除或注释掉即可。
提示:这行代码的意思是“如果图片地址是本机的,则删除图片url中本机的域名部分”。
3、完成上面的操作,保存后,重新刷新网站页面图片就会显示了。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

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