问题描述
有没有可用的过滤器可以设置这些自动生成的缩略图的命名约定?
这样的事情
-
thumbnail_150x150.jpg – > thumbnail-s.jpg
-
thumbnail_300x300.jpg – > thumbnail-m.jpg
-
thumbnail_600x600.jpg – > thumbnail-l.jpg
最佳解决方案
似乎答案是没有…
我遵循核心功能,发现了一个 dead-end 。并发现这个帖子 (How can I make add_image_size() crop from the top?),其中 Rarst 说:
Intermediate image generation is extremely rigid. Image_resize() keeps it close to code and completely lacks hooks.
但是,按照其他答案 (来自 bradt) 和他出版的代码 (Image Crop Position in WordPress),我想我得到它:)
在函数 bt_generate_attachment_metadata
中,我刚刚修改了对 bt_image_make_intermediate_size
的调用,包括最后一个参数 $size
$resized = bt_image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'], $size );
并修改了 bt_image_make_intermediate_size
功能的开始,如下所示:
-
将
$size
参数添加到该功能 -
而不是默认的
null
值到$suffix
,一个switch
到我们的新后缀
function bt_image_make_intermediate_size( $file, $width, $height, $crop = false, $size ) {
if ( $width || $height ) {
switch($size) {
case 'thumbnail':
$suffix = 't';
break;
case 'medium':
$suffix = 'm';
break;
case 'large':
$suffix = 'l';
break;
default:
$suffix = null;
break;
}
$resized_file = bt_image_resize( $file, $width, $height, $crop, $suffix, null, 90 );
Here,我的 MOD 的完整代码的副本,仅供参考。和 diff from the original 。
很可能,所有的代码都可以缩小到裸骨,但是这样我们可以获得自定义裁剪图像的好处:))
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。