J'ai défini 2 tailles de recadrage dans le fichier functions.php.
// Setup Post Thumbnails
// -----------------------------------------------
add_theme_support('post-thumbnails');
add_image_size('imagePost-thumb', 970, 9999,false);
add_image_size('better-thumb', 200, 9999, false);
Ensuite, dans les boucles appropriées, nous tirons l'une des vignettes en fonction du type de message.
<?php if ( has_post_thumbnail() ): ?>
<?php $size = (get_post_type() == 'imagepost') ? 'imagePost-thumb' : 'better-thumb'; ?>
<?php get_better_post_thumbnail($size); ?>
<?php endif; ?>
Get better_post_thumbnail () est une fonction que j’ai écrite pour obtenir l’image et la légende. J'appelle la the_post_thumbnail pour afficher l'image. Voici cette fonction.
function get_better_post_thumbnail($size) {
$thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id(), 'full');
echo '<div class="thumbnail">';
echo '<a href="' . $thumbnail_src[0] .'">';
the_post_thumbnail($size);
echo '</a>';
if( get_post( get_post_thumbnail_id() )->post_excerpt )
echo '<p class="wp-caption-text">' . get_post( get_post_thumbnail_id() )->post_excerpt . '</p>';
echo '</div>';
}
Cela fonctionne très bien sur mon serveur de test. Le seul problème est que lorsque je le pousse sur le serveur live, les cultures ne fonctionnent pas. Les images apparaissent comme ayant la taille correcte parce que notre thème les modélise mais elles se chargent en taille réelle.
Selon la suggestion de @ MathSmith, j'ai vérifié le serveur en direct pour voir si les différentes tailles d'image étaient en cours de création et qu'elles ne le sont PAS. Le serveur de test a toutes les tailles de fichiers différentes, tandis que le serveur réel a uniquement la taille complète.
Nous ne voulons pas charger une image 1024x1024 quand elle ne s'affiche jamais plus grand que 400x400. Bien sûr, je pourrais rogner les images à la main, mais mes blogueurs sont tous des spécialistes qui ont plus de difficultés avec la "technologie" et qui ont besoin que cela se produise automatiquement, comme il se doit.
Nos configurations dev et live sont identiques, à l'exception du plug-in w3 Total Cache sur le serveur live, mais je l'ai désactivé et testé les images, avec les mêmes résultats.
Des idées?
Deviner! Notre serveur live manquait de la bibliothèque d'images Gd. Pour une raison quelconque, il n'était pas inclus dans le package que nous utilisions par exemple pour notre serveur.
J'ai trouvé l'info sur la librairie Gd dans ce fil du forum d'assistance de Wordpress. Il avait trois ans, mais a souligné la bibliothèque manquante.
Nous n'avons jamais remarqué le fait que les sélecteurs de taille de vignette étaient grisés parce que nous pensions prendre soin de dimensionner à l'aide du fichier de fonction de thème.
Merci @MathSmith et @Wyck