問題描述
有沒有可用的過濾器可以設定這些自動生成的縮圖的命名約定?
這樣的事情
-
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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。