Timthumb.php是款非常好的图片缩略图裁剪插件,但如果在wordpress多站点模式下使用timthumb.php来实现缩略图裁剪,图片不会显示。检查后发现导致该问题的原因有两方面,一方面是出于安全考虑,Timthumb.php除了支持指定的几个网站的外链图片外,不支持其它任何外链图片;另一方面则是因为对本机图片地址的处理导致。解决的方法很简单,仅需要增加支持的外链域名,和修改对机图片处理的代码即可。
操作步骤:
1、编辑timthumb.php文件,找到以下代码(大概131行):
1 2 3 4 5 6 7 8 9 10 11 12 13 | if(! isset($ALLOWED_SITES)){ $ALLOWED_SITES = array ( 'flickr.com', 'staticflickr.com', 'picasa.com', 'img.youtube.com', 'upload.wikimedia.org', 'photobucket.com', 'imgur.com', 'imageshack.us', 'tinypic.com', ); } |
在最后一个域名下添加wordpress多站点使用的域名,如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if(! isset($ALLOWED_SITES)){ $ALLOWED_SITES = array ( 'flickr.com', 'staticflickr.com', 'picasa.com', 'img.youtube.com', 'upload.wikimedia.org', 'photobucket.com', 'imgur.com', 'imageshack.us', 'tinypic.com', 'boke8.net' //新增加支持的域名 ); } |
提示:也可以删除不想支持的站点域名。需要注意的是不要增加不信任或不熟悉的域名,因为会被人利用挂病毒之类…
2、在timthumb.php文件,找到以下代码(大概220行):
1 | $this->src = preg_replace('/https?:\/\/(?:www\.)?' . $this->myHost . '/i', '', $this->src); |
把该行代码删除或注释掉即可。
提示:这行代码的意思是“如果图片地址是本机的,则删除图片url中本机的域名部分”。
3、完成上面的操作,保存后,重新刷新网站页面图片就会显示了。