La génération d'image intermédiaire est extrêmement rigide. image_resize()
le garde près du code et manque complètement de crochets.
La seule option pour cela est de se connecter wp_generate_attachment_metadata
et d'écraser l'image générée par WP avec la vôtre (qui aura besoin d'un peu de image_resize()
fourche).
J'ai besoin de cela pour travailler, donc je pourrais peut-être partager du code plus tard.
Ok, voici un exemple approximatif mais fonctionnel. Notez que la configuration du recadrage de cette manière nécessite une compréhension de 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
fonction. Rarst faisait valoir qu'il fallait se connecter au processus de redimensionnement, mais créer les tailles d'image vous-même manuellement.Le codex Wordpress a la réponse, c'est ci-dessous.
Et le codex fait également référence à une page qui montre comment les positions des cultures agissent.
la source
J'ai développé une solution à ce problème qui ne nécessite pas de pirater le cœur: http://bradt.ca/archives/image-crop-position-in-wordpress/
J'ai également soumis un patch pour core: http://core.trac.wordpress.org/ticket/19393
Ajoutez-vous en tant que Cc sur le ticket pour montrer votre soutien pour qu'il soit ajouté au core.
la source
Vous pouvez utiliser le plugin Thumbnail Crop Position pour sélectionner la position de recadrage de vos miniatures.
la source
Solution alternative ici: http://pixert.com/blog/cropping-post-featured-thumbnails-from-top-instead-of-center-in-wordpress-with-native-cropping-tool/
Ajoutez simplement ce code à functions.php, puis utilisez le plugin "Regenerate Thumbnails" ( https://wordpress.org/plugins/regenerate-thumbnails/ ):
la source