web-dev-qa-db-fra.com

Masquer les tailles d'image personnalisées de la bibliothèque multimédia

Je souhaite masquer quelques tailles d'image personnalisées à l'utilitaire de téléchargement multimédia:

enter image description here

Le code suivant ( publié ici ) fonctionne uniquement pour les tailles d'image par défaut:

function remove_image_sizes($sizes) {
    unset($sizes['image-name']);
    return $sizes;
}
add_filter('image_size_names_choose', 'remove_image_sizes');

Existe-t-il une solution similaire pour supprimer les tailles d’image personnalisées?

5
Christine Cooper

Utiliser unset et intermediate_image_sizes_advanced fonctionnera, mais uniquement sur les images téléchargées après , la fonction est ajoutée. Pour le changer en fonction des images existantes, vous devez les régénérer à l'aide d'un plug-in (en supprimant essentiellement la taille de l'image) ou simplement empêcher cette option d'être visible.

Testé sur 3.5.1

// add custom image size
function mytheme_95344() {
        add_image_size('x-la',800,800, false);
}
add_action( 'after_setup_theme', 'mytheme_95344' );

// remove it
function remove_image_size_95344($sizes) {
    unset($sizes['x-la']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_image_size_95344');

Donc, cette taille x-la sera toujours affichée pour les images avant l’ajout de la fonction unset.

Pour supprimer cela, vous pouvez.

  1. Régénérer toutes les images (une douleur).
  2. Cachez-le de l'affichage en utilisant image_size_names_choose

    function remove_image_size_95344($possible_sizes) {
    
     unset( $possible_sizes['x-la'] );
     return $possible_sizes;
    
    }  
    add_filter('image_size_names_choose', 'remove_image_size_95344');
    

Pour clarifier les filtres :

intermediate_image_sizes_advanced - affecte le téléchargement réel
image_size_names_choose - affecte la visibilité du menu déroulant dans la boîte multimédia

Notez également :

Il se peut qu'un thème ou un plug-in utilise déjà le filtre image_size_names_choose quelque part car il est très courant d'utiliser add_image_size pour des images personnalisées. Si tel est le cas, vous pouvez toujours utiliser un deuxième filtre image_size_names_choose et configurer le $priority pour qu'il se déclenche après le premier .

 //default filter adding your custom sizes to dropdown
 // not having a 3rd parameter will default to priority of 10
 add_filter( 'image_size_names_choose', 'my_insert_custom_image_sizes' );
 //second use of same filter to remove images note the additional 15 to fire after the above
 add_filter( 'image_size_names_choose', 'remove_image_sizes', 15);

Pour voir comment fonctionnent les filtres: http://codex.wordpress.org/Function_Reference/add_filter

6
Wyck