J'ai utilisé le type de message personnalisé, où "miniature", "moyenne" et "grande" taille n'est pas nécessaire. Je dois désactiver cette taille et créer une fonction ou un plug-in, où je peux définir, quelle taille d'image est requise pour chaque type de message personnalisé.
Ma première étape est la connexion de la fonction get_intermediate_image_sizes à partir de wp-includes/media.php. J'ai ajouté ce code à functions.php mais cela ne fonctionne pas :(
add_filter('get_intermediate_image_sizes', 'get_intermediate_image_sizes_fixed');
function get_intermediate_image_sizes_fixed() {
global $_wp_additional_image_sizes;
//$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
$image_sizes = array();
if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
$image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}
UPD: La modification de cette ligne dans le fichier media.php fonctionne. Types par défaut après modifications non générées.
$image_sizes = array('thumbnail', 'medium', 'large');
Mais comment faire fonctionner mon crochet?
Je pense que la seule solution que vous avez pour le moment est de désactiver toutes les tailles d'image intermédiaires:
add_filter( 'intermediate_image_sizes', '__return_empty_array', 99 );
Ensuite, générez-les manuellement, en fonction du type de publication, en vous connectant à 'wp_generate_attachment_metadata', où vous avez accès à l'ID de pièce jointe (et donc à la publication parent):
function do_your_stuff( $data, $attachment_id ) {
// generate intermediate images
return $data;
}
add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );