Posted on 31 décembre 2009 in Wordpress | 8 comments

Miniature d'un tableau végétal

Associer une miniature à ses extraits d

La dernière version de WordPress, Carmen 2.9, permet enfin de gérer (un peu) mieux l’insertion des images, en particulier les miniatures (thumbnails), sans nécessiter de plugin. D’emblée vous dire que cette fonction gère uniquement les nouveaux articles postés. Pour les vignettes des anciens articles, on peut choisir sa méthode personnelle parmi plusieurs configurations possibles. Plugin, TimThumb, utiliser wp 2.9 en ajoutant le code ad hoc dans son template, etc. Voir plus bas la petite liste ressources de bons articles.

Utiliser la nouvelle fonction miniature de WordPress 2.9 dans vos thèmes

Coder

Je ne ferais pas le tour de toutes les méthodes possibles (le champ est aussi vaste que l’ingéniosité des développeurs et codeurs en herbe). Parcourez les ressources livrées plus bas.

Vous pourriez par exemple vous passer de ce petit tutoriel et utiliser directement le Plugin Thumbnail For Excerpts ou Plugin Smart Image II, ou encore Get The Image et fw-post-image. Ce qui ne gère pas la nouvelle capacité de 2.9. à fabriquer des miniatures, ces plugins vont seulement chercher les première image existante.
Mais, d’une part les miniatures générées par la nouvelle version (avec the_post_thumbnail) ont le mérite d’être taillées, d’autre part le souci avec les plugins est le risque qu’ils ne soient plus à jour au fil des versions de WordPress, abandonnés par leurs développeurs, plantant par la même occasion votre beau blog au milieu du désert de la Toile criarde. Or, sur le plan des images, WordPress ne fait pas dans le simple pour ses utilisateurs. Voici une méthode raccourcie pour ceux qui ont déjà mal au crâne ou lisent mal l’anglais.

Ajoutez dans le functions.php de votre thème la ligne suivante (choisissez la taille de votre miniature):

1
2
3
  // Ajout pour supporter la gestion des thumbnails livrée avec WordPress 2.9
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 150, true ); // Miniature de 150px/150px et fonction crop
  // Ajout pour supporter la gestion des thumbnails livrée avec WordPress 2.9
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 150, true ); // Miniature de 150px/150px et fonction crop

Notez que la 2ème ligne est optionnelle car l’on peut également définir la taille au moment d’appeler cette fonction dans vos templates.

Ajoutez dans les fichiers de votre thème où vous voulez voir apparaître cette miniature (au choix, home.php, index.php, category.php, archive.php) la ligne suivante:

1
<?php the_post_thumbnail();?>
<?php the_post_thumbnail();?>

Ceci n’a un sens que si votre thème permet d’afficher les extraits de vos articles plutôt que l’entièreté de son contenu. Si ce n’est pas le cas, remplacez la ligne :

1
<?php the_content('Lire la suite &raquo;'); ?>
<?php the_content('Lire la suite &raquo;'); ?>

par

1
<?php the_excerpt('Lire la suite &raquo;'); ?>
<?php the_excerpt('Lire la suite &raquo;'); ?>

Ce qui donne avec l’appel de la fonction thumbnail :

1
2
<?php the_post_thumbnail();?>
   <?php the_excerpt('Lire la suite &raquo;'); ?>
<?php the_post_thumbnail();?>
   <?php the_excerpt('Lire la suite &raquo;'); ?>

Personnellement, je préfère afficher une version conditionnelle, incluant le titre de l’article attaché à l’image, une récupération d’une image par défaut et définir, au besoin, la taille des vignettes dans les templates (fichiers du thème) pour pouvoir définir des tailles différentes selon l’endroit (solution Justin Tadlock) :

1
2
3
4
5
6
7
8
<?php
    if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) {
    the_post_thumbnail(array( 150,150 ), array( 'alt' => 'alttext', 'title' => '<?php the_title(); ?>'));
} else {
    echo '<img src="sans-image.png" alt="sans image" title="image" />'; }
}
?>
   <?php the_excerpt('Lire la suite &raquo;'); ?>
<?php
	if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) {
	the_post_thumbnail(array( 150,150 ), array( 'alt' => 'alttext', 'title' => '<?php the_title(); ?>'));
} else {
	echo '<img src="sans-image.png" alt="sans image" title="image" />'; }
}
?>
   <?php the_excerpt('Lire la suite &raquo;'); ?>

Mais si vous aviez configuré vos miniatures au moyen de customs fields, vous auriez intérêt à avoir une solution de rechange (solution Kremalious, wp-recipe) :

1
2
3
4
5
6
7
8
9
10
11
<?php
    if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) {
    the_post_thumbnail(array( 150,150 ));
} else {
    $postimage = get_post_meta($post->ID, 'post-image', true);
    if ($postimage) {
        echo '<img src="'.$postimage.'" alt="" />'; }
}
?>
   <?php the_excerpt('Lire la suite &raquo;'); ?>
    <a href="<?php the_permalink() ?>" class="alignright" title="Lien permanent vers <?php the_title(); ?>">Lire la suite &raquo;</a>
<?php
	if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) {
	the_post_thumbnail(array( 150,150 ));
} else {
	$postimage = get_post_meta($post->ID, 'post-image', true);
	if ($postimage) {
		echo '<img src="'.$postimage.'" alt="" />'; }
}
?>
   <?php the_excerpt('Lire la suite &raquo;'); ?>
	<a href="<?php the_permalink() ?>" class="alignright" title="Lien permanent vers <?php the_title(); ?>">Lire la suite &raquo;</a>

Pour styler votre miniature, ouvrez votre style.css et ajoutez la classe .wp-post-image. Exemple:

1
2
3
4
5
6
.wp-post-image {
border: 1px solid #999;
margin:0 15px 10px 0;
padding:0;
float:left;
}
.wp-post-image {
border: 1px solid #999;
margin:0 15px 10px 0;
padding:0;
float:left;
}

Utilisation – Insérer une image dans un nouvel article et choisir une miniature

Deux étapes. Maintenant, testez cette nouvelle fonction en publiant votre prochain article.

1) Faire comme d’habitude, dans l’éditeur visuel ajoutez une image en cliquant sur le petit carré en haut à gauche. Une fois celle-ci insérée, enregistrez votre article.

Capture d'écran Insertion d'une image dans WordPress

Remplissez tous les champs lors de l'insertion d'une image comme de la miniature, cela vous évitera des erreurs de validation et sera conforme au css du thème

2) Ensuite, à droite de l’éditeur visuel, cliquez sur « choisir comme miniature ». Une fenêtre pour l’image s’ouvre. Allez dans la galerie pour retrouver l’image que vous venez de charger, cliquez sur « Utiliser comme miniature » et cochez la case miniature:

capture d'écran pour insérer une miniature

Choisir-Utiliser comme miniature-

Miniature d'article

Choisir sa miniature d'article sous l'article à droite

Ici, on insère pas dans l’article, juste fermer la fenêtre de la miniature que vous voyez d’ailleurs apparaître à droite. Enregistrez le brouillon de votre article (auparavant, allez dans la partie html de l’éditeur visuel, sélectionnez tout, copiez le code au cas où), puis vérifiez avec l’aperçu et publiez.

Et pour les miniatures des anciens articles ?

Cette fonction étant codée différemment (the post thumbnail au lieu de post-image), non, les anciennes miniatures ne sont pas concernées.
Une méthode simple est de combiner des plugins. Pour régénérer la taille de vos miniatures dans un nouveau format, utilisez le plugin Regenerate Thumbnails. Son avantage est qu’il ne sert qu’une fois. Vous pourrez le désactiver une fois les miniatures mises à la nouvelle échelle. Ensuite, utilisez l’un des quatre plugins dont j’ai parlés plus haut (fw-post-image, get the image, smart imageII ou thumbnail for excerpt, et il y en a d’autres…).

Si vous avez trouvé d’autres méthodes que celle-ci ou d’autres astuces que celles citées dans les articles sources, abusez des commentaires, merci beaucoup pour tout le monde.

That’s All Folks!

Sources et ressources utiles :

.