add_image_size(), sachez l’utiliser ! : #jeudiconfession n°6

add_image_size(), sachez l’utiliser ! : #jeudiconfession n°6

Super Size Me

Vous connaissez la fonction add_image_size() ? Elle permet, si le thème supporte les images à la une (ou Featured Image), de découper l’image en plusieurs tailles. Par défaut WordPress propose déjà des tailles dans le menu « Réglages -> Média ». Mais selon les besoins des thèmes, il est possible d’en ajouter.

Fun Size

Prenons un exemple simple, vous avez 3 tailles + la taille originale de votre photo. Cette dernière ne doit être utilisée que dans un lien vers celle-ci, LightBoxée la plupart du temps. L’image la plus petite, la miniature (ou thumbnail) est affichée dans la liste des articles du blog. La taille moyenne peut être affichée dans les résultats de recherche et la plus grande (sans être l’originale !) est elle affichée dans l’article lui même.
Et si le thème intégrait un slider avec des tailles spécifiques ? Et si le thème donnait la possibilité d’afficher d’autres thumbs dans la sidebar ? Et j’en passe, les exemples ne manquent pas, c’est ici qu’on utilise la fonction, de cette façon :

Avec ce simple code court je viens d’ajouter une taille de 3000×250 nommée panoramix, 3000 étant le max en largeur, si ma photo fait 1600×900, elle fera alors 1600×250. Le dernier paramètre permet de recadrer ou non l’image, je vous conseille true.

It’s Not the Size That Counts

J’en viens à mon #jeudiconfession, quel est le problème avec cette fonction ? Aucune en fait, la fonction est très bien, c’est la façon d’ajouter, d’utiliser cette fonction qui ne me plait pas toujours. Moi je l’ai fait que le hook init afin qu’au chargement de WordPress, front et backend je puisse avoir connaissance de cette taille (qui se retrouvera dans une variable globale). Le soucis est que certains développeurs de thème n’ajoutent ces tailles que sous certaines conditions, leur choix se défends, mais il ne me plait pas, j’explique les cas :

The Large Economy Size

La réflexion est la suivante : sachant que si j’ajoute 10 tailles d’images, je vais avoir, pour chaque média uploadé 11 fichiers (10+originale), mais, je n’en aurait pas forcément l’utilité des 11 ! Si j’upload une image pour le slider, les miniatures ne seront pas utilisées, j’ai donc beaucoup de fichiers pour rien !
L’idée est donc de ne déclarer ces nouvelles tailles qu’à certaines moment précis, en vérifiant par exemple le type de post.
Exemple de code trouvé dans un thème (forest) :

Le développeur a choisi d’utiliser le hook filtre intermediate_image_sizes_advanced qui contient la globale avec toutes les tailles, il va pouvoir ajouter et retirer les tailles désirées. Et il switch avec le type de post traité, cela lui permet donc de ne créer que les bonnes tailles d’images, quelle bonne idée non ?
NON !

One Size Fits All

Repensons à ma façon de faire, sur le hook init je vais donc toujours ajouter les tailles. Alors oui, je vais créer des fichiers inutiles parfois, mais le coà»t du Mo n’est pas assez chez pour me soucier de ça, et cela ne va pas faire ramer mon site ni mon serveur ni mon FTP, bref, pas grave.
Alors pourquoi c’est mieux !? Et bien je vous le donne en mille :
Et si j’upload une image depuis la page des médias ? Que se passe t-il ? Aucun type de post, donc j’ai les 3 tailles par défaut de WordPress et impossible d’utiliser ma photo dans le slider car sa taille 1600×600 n’existe pas ! Et si la photo que j’ai utilisée dans mon slider, je la veux aussi demain dans mon article format moyen ? Je ne l’ai pas non pus elle a été unset() !!
Encore un cas, en fait, je modifie mon thème et j’ajoute une taille d’image. Je dois donc régénérer mes images, mais peut importe le plugin utilisé pour le faire* ils ne trouveront pas les tailles, et une fois de plus, les fichiers ne seront pas régénérés. Dans mon cas, si !

Slim Size Me!!

Finalement, l’ajout de tailles d’image, c’est plutôt facile non ? 😉

Bonus track

* la voilà l’astérisque, je vous donne juste un bon plugin nommé « Simple Image Sizes » qui permet d’ajouter des tailles via une interface utilisateur, puis permets de récupérer le code à coller dans le thème et aussi de régénérer les miniatures. Ce plugin est fait par Nicolas Juen (twitter @raherian), vous pouvez lui faire confiance, c’est un pro WordPress !

Vous aimez ? Partagez !


Réagir à cet article

220 caractères maximum