web-dev-qa-db-fra.com

Image personnalisée des vignettes de différentes tailles

J'ai un type de message personnalisé qui contient des champs personnalisés pour le téléchargement d'images de types différents pour un site de portefeuille.

Par exemple: (logos, sites Web, annonces imprimées, etc.).

Je prévois de télécharger des images de différentes tailles et formats, mais j'ai besoin d'une taille plus petite (vignette) d'une taille spécifique (et différente) pour chaque type d'image. J'ai également besoin de fonctionnalités pour rogner ces miniatures manuellement.

Logo pouces -> 200x200

Vignettes de site Web -> 450x200

pouces d'impression -> 200X400

etc...

J'ai joué avec quelques plugins: Éditeur de vignettes de messages et Plusieurs vignettes de messages . Celles-ci semblent trop boguées dans WordPress 3.3 et ne semblent pas faire exactement ce que je veux.

Je pourrais bien sûr simplement télécharger 2 versions différentes de chaque image et utiliser l'outil de recadrage dans le backend pour les obtenir à la bonne taille, mais j'aimerais une approche plus élégante.

Je pense que ce que je recherche vraiment est un conseil.

  • Devrais-je continuer à me battre avec les plugins existants et essayer de faire fonctionner quelque chose?
  • Devrais-je essayer de développer le mien? (Je suis assez décent avec php/javascript mais je n'ai encore écrit que des plugins extrêmement simples pour wp)?
  • Devrais-je abandonner et utiliser l'approche sale (télécharger 2 versions de chaque)?

Quelle est la meilleure option pour gérer ce type de situation?

1
Zach Lysobey

Ajoutez ce code à votre functions.php

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

// Set the thumbnail size
add_image_size('custom_logo', 200, 200, true );
add_image_size('custom_website_thumb', 450, 200, true );
add_image_size('custom_print_ad_thumb', 200, 400, true );

Mettez ceci dans votre modèle de publication où vous voulez voir l'image.

<?php echo get_the_post_thumbnail($post_id, 'custom_logo'); ?>

Vous pouvez également l'envelopper dans un lien comme celui-ci.

 <a href="<?php echo get_permalink($post_id) ?>" title="<?php echo get_the_title($post_id); ?>"> <?php echo get_the_post_thumbnail($post_id, 'custom_logo'); ?></a> 

Vous pouvez voir le Codex Wordpress pour plus d'exploitation.

N'oubliez pas de définir les images en tant qu'image sélectionnée lors du téléchargement pour pouvoir les utiliser.

Lien Codex

2
John Bentwin