问题描述
有没有可用的过滤器可以设置这些自动生成的缩略图的命名约定?
这样的事情
- 
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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。