Comment désactiver la génération de tailles d'image par défaut pour certains types de publication personnalisée?

11

J'ai utilisé un type de message personnalisé, les tailles "miniature", "moyenne" et "grande" n'étant pas requises. 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 le hooking de la fonction get_intermediate_image_sizes 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?

    
posée Bohdan Hdal 11.12.2011 - 19:39

1 réponse

6

Je pense que la seule solution que vous avez à l'heure actuelle 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 la pièce jointe (et donc à sa 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 );
    
réponse donnée scribu 12.12.2011 - 03:15

Lire d'autres questions sur les étiquettes