मध्यवर्ती छवि निर्माण अत्यंत कठोर है। image_resize()
यह कोड के करीब रहता है और पूरी तरह से हुक का अभाव है।
इसके लिए बहुत ही एकमात्र विकल्प है wp_generate_attachment_metadata
अपने स्वयं के साथ WP-जनरेट की गई छवि को हुक करना और उसे अधिलेखित करना (जिसमें थोड़े से image_resize()
कांटे की आवश्यकता होगी )।
मुझे काम के लिए इसकी आवश्यकता है इसलिए मैं बाद में कुछ कोड साझा करने में सक्षम हो सकता हूं।
ठीक है, यहाँ मोटे तौर पर, लेकिन काम करने का उदाहरण है। ध्यान दें कि इस तरह से फसल की स्थापना के लिए समझ की आवश्यकता होती है 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;
}