web-dev-qa-db-fra.com

Redimensionner uniquement les images en vedette lors du téléchargement

Je faisais une sauvegarde de mon dossier wp-content. Mais quand j'ai remarqué la taille du dossier de téléchargement. J'étais étonné et chaque image utilisée dans mon blog avait 5 copies avec des tailles différentes dans ce dossier. Tous ces éléments totalisaient 7 Go en 2 mois. De cette façon, le stockage sur un serveur ne sera pas long. J'ai beaucoup de messages de galerie d'images. Je ne savais pas que chaque image dans Wordpress était redimensionnée et conservée dans différentes tailles et je pensais que seules les images en vedette étaient redimensionnées.

Alors, y a-t-il un moyen pour WordPress de ne redimensionner que les images présentées?

4
busyjax

Vous pouvez simplement définir tous les attributs de taille d'image inutilisés sur 0 pour que WordPress ne les génère plus. Bien que cela ne s'applique qu'aux tailles d'image par défaut, vous pouvez utiliser des filtres pour les supprimer.

En général, WP stocke toutes ces tailles pour générer des images dans le global $_wp_additional_image_sizes. Le plugin suivant utilise un filtre pour supprimer les tailles à la volée. Voir les points de débogage pour désinstaller/exporter/etc. les différentes tailles. Vous obtiendrez rapidement un aperçu et pourrez supprimer ce dont vous n’avez pas besoin.

<?php
defined( 'ABSPATH' ) or exit;
/* Plugin Name: Disable Image Sizes */

add_filter( 'intermediate_image_sizes_advanced', 'wpse_106463_filter_image_sizes' );
function wpse_106463_filter_image_sizes( $sizes )
{
    // Uncomment the following line to see your image sizes:
    # printf( '<pre>%s</pre>', htmlspecialchars( var_export( $GLOBALS['_wp_additional_image_sizes'], true ) ) );

    // Unset default image sizes: Simply uncomment the line
    # unset( $sizes['thumbnail'] );
    # unset( $sizes['medium'] );
    # unset( $sizes['large'] );

    return $sizes;
}

Et pour ajouter des tailles personnalisées à votre sélecteur de taille dans l'interface utilisateur d'administration, utilisez simplement les éléments suivants:

add_filter( 'image_size_names_choose', 'wpse_106463_image_size_select' );
function wpse_106463_image_size_select( $sizes )
{
       return $sizes + array(
              'custom_size_name' => 'Avatar Size',
              'full'             => 'Original size'
       );
}
3
kaiser