La generación de imágenes intermedias es extremadamente rígida. image_resize()
lo mantiene cerca del código y carece por completo de ganchos.
Prácticamente la única opción para esto es conectar wp_generate_attachment_metadata
y sobrescribir la imagen generada por WP con la suya (que necesitará un poco de image_resize()
bifurcación).
Necesito esto para el trabajo, así que podría compartir algún código más tarde.
Ok, este es un ejemplo tosco pero funcional. Tenga en cuenta que configurar el cultivo de esta manera requiere comprender imagecopyresampled()
.
add_filter('wp_generate_attachment_metadata', 'custom_crop');
function custom_crop($metadata) {
$uploads = wp_upload_dir();
$file = path_join( $uploads['basedir'], $metadata['file'] ); // original image file
list( $year, $month ) = explode( '/', $metadata['file'] );
$target = path_join( $uploads['basedir'], "{$year}/{$month}/".$metadata['sizes']['medium']['file'] ); // intermediate size file
$image = imagecreatefromjpeg($file); // original image resource
$image_target = wp_imagecreatetruecolor( 44, 44 ); // blank image to fill
imagecopyresampled($image_target, $image, 0, 0, 25, 15, 44, 44, 170, 170); // crop original
imagejpeg($image_target, $target, apply_filters( 'jpeg_quality', 90, 'image_resize' )); // write cropped to file
return $metadata;
}
image_resize
función. Rarst estaba señalando que tendría que engancharse en el proceso de cambio de tamaño, pero cree los tamaños de imagen usted mismo manualmente.Wordpress codex tiene la respuesta, está abajo.
Y también el códice hace referencia a una página que muestra cómo actúan las posiciones de recorte.
fuente
He desarrollado una solución a este problema que no requiere piratear el núcleo: http://bradt.ca/archives/image-crop-position-in-wordpress/
También he enviado un parche al núcleo: http://core.trac.wordpress.org/ticket/19393
Agréguese como Cc en el ticket para mostrar su apoyo para que se agregue al núcleo.
fuente
Puede usar el complemento Posición de recorte de miniaturas para seleccionar la posición de recorte de las miniaturas.
fuente
Solución alternativa aquí: http://pixert.com/blog/cropping-post-featured-thumbnails-from-top-instead-of-center-in-wordpress-with-native-cropping-tool/
Simplemente agregue este código a functions.php, luego use el complemento "Regenerar miniaturas" ( https://wordpress.org/plugins/regenerate-thumbnails/ ):
fuente