web-dev-qa-db-fra.com

Wordpress redimensionne l'image à la même taille que celle téléchargée

J'écris un thème qui utilise différentes tailles d'image.

Voici les tailles ciblées telles qu'elles sont définies dans Paramètres> Médias dans WP Admin:

 enter image description here 

Voici le code functions.php pour le support des vignettes:

$THUMBNAIL_SIZE = 320;
$MEDIUM_SIZE = 460;
$LARGE_SIZE = 1366;


if (function_exists('add_theme_support')) { 
  add_theme_support('post-thumbnails');

  set_post_thumbnail_size(        $THUMBNAIL_SIZE,  9999);
  add_image_size( 'medium-size',  $MEDIUM_SIZE,  9999 ); 
  add_image_size( 'large-size',  $LARGE_SIZE, 9999 );
}

Ainsi, comme vous pouvez le constater, les tailles sont 320px large, 460px large et 1366px large.

Le problème est que, lorsque je télécharge une image large de 1366px, il télécharge le fichier d'origine et crée en outre des images redimensionnées de 320px, 460pxet 1366px.

Par exemple.

UPLOAD:

  • someimage.jpg (qui a une largeur de 1366 pixels)

SORTIE(dans/uploads/2015/08 /)

  • someimage.jpg

  • someimage-1366x937.jpg

  • someimage-460x316.jpg

  • someimage-320x220.jpg

Ce que je peux voir, c'est que le fichier auto-créé, quelque-image-1366x937.jpg, est compressé, ce que je n'anticipe pas vraiment.


Dans mon expérience précédente, si l'image téléchargée avait la même taille que la plus grande taille spécifiée, elle ne créait pas de duplicata.

Je n'ai pas besoin de ces images dupliquées avec la même largeur que le téléchargement d'origine, elles ne font que gaspiller de l'espace de stockage.

J'utilise Wordpress 4.3. Aucun plugin n'a encore été ajouté, c'est donc quelque chose que le noyau Wordpress est en train de faire. Je ne l'avais pas expérimenté avant la mise à jour de la version 4.3 (j'avais déjà utilisé une version 4.0 et repris le développement WP après la publication de la 4.3) en dehors.


METTRE À JOUR:

Voici mon processus d'édition d'image.

Je redimensionne toujours l'image à la plus grande taille nécessaire. Certains messages nécessitent des images de 1366 pixels de large, d’autres seulement une image de 460 pixels de large.

Quel que soit le scénario utilisé, je souhaite que Wordpress prenne l'image que je télécharge sans en recréer une copie compressée. De plus, il doit créer toutes les plus petites tailles.

Ça signifie:

  • 1366px upload -> create 460px and 320px

  • Téléchargement 460px ---> Créer 320px

1
Drunken Master

Si vous téléchargez des images de la même taille que la grande taille de votre installation WordPress, définissez votreGrand formatsur 0x0 dans Paramètres -> Médias ou supprimez cette ligne:

add_image_size( 'large-size',  $LARGE_SIZE, 9999 );

EDIT # 1:

Essayez d'ajouter ce filtre pour supprimer l'image d'origine:

add_filter('wp_generate_attachment_metadata', 'delete_fullsize_image');
function delete_fullsize_image($metadata) {
    $upload_dir = wp_upload_dir();
    $full_image_path = trailingslashit($upload_dir['basedir']) . $metadata['file'];
    $deleted = unlink($full_image_path);

    return $metadata;
}

Il supprimera l'image d'origine après le téléchargement et ne conservera que celles générées.

EDIT # 2:

Vérifiez ces deux plugins (non testés), ils pourraient vous aider à le faire automatiquement:

1
Ciprian