Parece que a resposta é não ...
Eu segui as principais funções e encontrei um beco sem saída. E encontrei este post ( Como posso fazer o crop add_image_size () de cima? ) onde Rarst diz:
A geração de imagens intermediárias é extremamente rígida. Image_resize () mantém perto do código e completamente sem ganchos.
Mas , seguindo o exemplo da outra resposta (de bradt ) e o código que ele publicou ( Image Crop Position no WordPress ), acho que entendi :)
Na função bt_generate_attachment_metadata
, acabei de modificar a chamada para bt_image_make_intermediate_size
incluindo o último parâmetro $size
$resized = bt_image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'], $size );
E modificou o início da função bt_image_make_intermediate_size
da seguinte forma:
- adicionou o parâmetro
$size
à função - em vez do valor padrão
null
para$suffix
, umswitch
para nossos novos sufixos
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 );
Aqui , uma cópia do código completo com meus mods, apenas para referência.
E o dif do original .
Muito provavelmente, todo o código pode ser reduzido a um osso nu, mas desta forma obtemos o benefício de imagens cortadas personalizadas:))