set_post_thumbnail_size vs add_image_size


11

Quelle est la différence entre set_post_thumbnail_size et add_image_size? Set_post_thumbnail_size pour toutes les images et add_image_size pour dimensionner les images individuellement?

Merci.

Réponses:


26

Lorsqu'une image est téléchargée dans WordPress, elle est enregistrée dans sa taille d'origine, ainsi que sous forme de copies redimensionnées de différentes tailles. De cette façon, il devient facile d'utiliser différentes tailles, de la même image, à des fins différentes.

Par défaut, WordPress crée 3 copies dans 3 tailles différentes:

  • 'thumb'
  • 'medium'
  • 'large'

La taille en pixels de ces 3 tailles peut être définie dans le tableau de bord WordPress, sous le menu Settings -> Media.

Maintenant, la fonction add_image_sizeest utilisée pour enregistrer une nouvelle taille, qui s'ajoute aux 3 valeurs par défaut.

Chaque taille enregistrée peut être récupéré en utilisant son nom, dans une fonction de WordPress, par exemple wp_get_attachment_image_src, wp_get_attachment_image, wp_get_attachment_link.

Toutes ces fonctions acceptent un paramètre $sizequi devrait être le nom d'une des tailles enregistrées (l'une des 3 normes ou l'une des tailles personnalisées enregistrées avec add_image_size).

Si 'full'est utilisé comme $sizeargument, l'image d'origine est renvoyée, celle non redimensionnée.

En plus des fonctions mentionnées ci-dessus, il existe deux autres fonctions qui utilisent les tailles d'image: get_the_post_thumbnailet the_post_thumbnail.

Ces deux fonctions obtiennent (la première) et font écho (la seconde) l'image définie comme "Image vedette" pour un article.

Ce qui est retourné (ou répercuté) par ces fonctions est une imgbalise html complète , quelque chose comme

<img scr="http://www.example.com/wp-content/2013/08/image-200x200.jpg" />

Alors, quelle est la taille utilisée?

Si a $sizeest passé comme 2e argument (le 1er l'est $postid), ces fonctions renvoient l'image dans cette taille. Dans le cas contraire, ces fonctions de recherche d'une taille de l' image enregistrée avec le nom: post-thumbnail.

Ce n'est pas l'une des 3 tailles par défaut, en fait, c'est la 4ème taille standard (la 5ème est considérée full) et vous pouvez l'enregistrer en appelant set_post_thumbnail_size.

Donc

set_post_thumbnail_size( $width, $height, $crop );

est un raccourci pour

add_image_size( 'post-thumbnail', $width, $height, $crop );

Si vous n'avez pas appelé set_post_thumbnail_size(ce qui signifie que la taille 'post-thumbnail'n'est pas créée), WordPress utilisera la taille thumbet si même cette taille n'est pas disponible, WordPress utilisera l'image d'origine, celle non redimensionnée.

L'enregistrement de tailles d'image personnalisées peut être très utile lors de la conception d'un thème, mais il est important de ne pas en abuser: chaque image téléchargée est copiée et redimensionnée pour toutes les tailles enregistrées, donc l'enregistrement de nombreuses tailles ralentira considérablement le processus de téléchargement d'images.

Une note:

Sachez que lorsque WordPress crée des copies à l'échelle d'une image, il ne l'agrandit jamais, mais ne fait que des copies plus petites: par exemple, si l'image d'origine est 400x500px et que la taille d'image `` moyenne '' est 800x600px, la taille moyenne et plus ne sont pas créées.

Ainsi, l'enregistrement d'une taille d'image ne donne jamais la sécurité qu'un fichier image pour chaque taille enregistrée existe réellement dans le dossier de contenu WordPress. Même parce que les tailles d'images enregistrées changent facilement: modification des paramètres, changement de thème, etc.

Lorsqu'une taille d'image change, pour une raison quelconque, la modification a un effet sur les images téléchargées après cette modification; les images téléchargées avant ne modifient pas les dimensions et ne sont pas redimensionnées et réenregistrées.

Si l'on doit s'appuyer sur des tailles d'image spécifiques après que certaines images ont déjà été téléchargées (par exemple après avoir changé de thème), le plugin Regenerate Thumbnails sera un épargnant de vie.


2
Impressionnant. J'aurais cliqué 5 fois à cause de votre réponse mais le site ne le permet pas. Merci.
Greeso

Vous êtes les bienvenus, on est plus ok :)
gmazzap

Encore une questoin: que se passe-t-il si je n'ai pas appelé set_post_thumbnail_size (ce qui signifie que la taille «post-thumbnail» n'est pas créée, alors j'appelle the_post_thumbnail. Que va-t-il se passer? param)
Greeso

@GM, Bravo pour une explication lucide
Istiaque Ahmed

Cette réponse est très utile! Cependant, je pense que ceci: set_post_thumbnail_size( 150, 150 ); If you haven't called set_post_thumbnail_size (which means the size 'post-thumbnail' is not created), WordPress will use the size thumb, and if even this size is not available, WordPress will use the original image, the one not resized. ... est incorrect. D'après mon expérience, si cela set_post_thumbnail_size()n'a pas été appelé, WP revient à l'image en taille réelle.
Travis Northcutt

1

Du Codex:

set_post_thumbnail_size

Définissez les dimensions par défaut de l’image sélectionnée (anciennement Poster miniature). Pour enregistrer des tailles d'image supplémentaires pour les images sélectionnées, utilisez: add_image_size ().

add_image_size

Enregistre une nouvelle taille d'image. Cela signifie que WordPress créera une copie de l'image sélectionnée (anciennement connue sous le nom de miniature de message) avec les dimensions spécifiées lorsque vous téléchargez une nouvelle image.


Puis-je utiliser add_image_size sans utiliser set_post_thumbnail_size?
Greeso

Oui bien sûr.
Krzysiek Dróżdż
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.