Yanıtlar:
Görünüşe yanıt olduğunu hiçbir ...
Temel işlevleri takip ettim ve çıkmaz sokak buldum. Ve (bu yazı bulundu ben yukarıdan add_image_size () kırpma yapabilir Nasıl? ) Nerede Rarst diyor ki:
Ara görüntü üretimi son derece katıdır. Image_resize () kodu koda yakın tutar ve kancalardan tamamen yoksundur.
Ancak , diğer cevabın ( bradt'tan ) ve yayınladığı kodun ( WordPress'te Resim Kırpma Konumu ) ardından, anladım :)
Fonksiyonda bt_generate_attachment_metadata
, sadece bt_image_make_intermediate_size
son parametreyi dahil etmek için çağrıyı değiştirdim$size
$resized = bt_image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'], $size );
Ve fonksiyonun başlangıcını bt_image_make_intermediate_size
aşağıdaki gibi değiştirdi :
$size
parametreyi işleve ekledinull
değeri$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 );
Burada , sadece referans için modlarım ile tam kodun bir kopyası.
Ve orijinalden farkı .
Büyük olasılıkla, tüm kod çıplak bir kemiğe büzülebilir, ancak bu şekilde özel kırpılmış görüntülerden faydalanırız :))
İmage_make_intermediate_size filtresini kullanabilirsiniz , ancak aldığınız $ dosya adına göre ara dosyayı hangi adı değiştirmek istediğinizi bulmanız gerekir (ve sonra dosyayı yeniden adlandırın, çünkü bu noktada zaten oluşturulmuştur).
Ben sadece "küçük resim" için bir ara boyut görüntü oluşturmak, bu yüzden bu kadar basit:
add_filter( 'image_make_intermediate_size', function( $filename ) {
// old 2017_234783843-100x100.jpg
$old = $filename;
// new 2017_234783843-thumbnail.jpg
$new = preg_replace("/(\d+_\d+)-\d+x\d+\.(.*)/i", "$1-thumbnail.$2", $old );
rename($old, $new);
return $new;
} );
"/(.*)-\d+x\d+\.(.*)/i"