Utiliser les Images à la Une
Lundi, 20 décembre 2010 par admin
(Article adapté depuis New in WordPress par Mark Jaquith – en anglais)
Il existe différentes extensions pour gérer des miniatures d’articles, comme par exemple Simple Post Thumbnail.
Mais depuis la version 2.9 de WordPress, cette fonctionnalité, appelée Image à la Une en français, peut être activée directement via le thème courant.
Tout d’abord, dans le fichier functions.php du thème utilisé dans votre installation WordPress, il suffit de déclarer cette option. Ce qui va l’activer dans l’administration du site dans la gestion des Articles et des Pages :
add_theme_support( 'post-thumbnails');
Si vous souhaitez l’activer sur l’un ou l’autre uniquement utilisez la syntaxe suivante :
add_theme_support( 'post-thumbnails', array( 'post' ) ); // Ajouter sur les articles uniquement add_theme_support( 'post-thumbnails', array( 'page' ) ); // Ajouter sur les pages uniquement
Ensuite, il sera utile de spécifier des tailles de redimensionnement pour vos miniatures. Il existe 2 options : le Box-resizing et le Hard-cropping.
Le Box-resizing réduit l’image de manière proportionnelle, pour coller au plus près de la largeur et de la hauteur spécifiée. Par exemple, si vous définissez le box-resizing à 50 x 50 pixels, une image faisant 100 x 50 pixels, sera réduite à la taille de 50 x 25 pixels.
set_post_thumbnail_size( 50, 50 ); // 50 pixels en largeur par 50 pixels en hauteur, box resize
Cette technique permet de toujours obtenir un recadrement homothétique sans perdre un bout de l’image. Mais cela implique que la taille finale de la miniature varie.
Pour forcer la taille de la miniature, il faudra donc utiliser le Hard-cropping qui réduira l’image et au besoin la retaillera pour la faire coller avec les dimensions souhaitées.
set_post_thumbnail_size( 50, 50, true ); // 50 pixels en largeur par 50 pixels en hauteur, mode hard crop
Ensuite, il suffira d’appeler les fonctions propres à cette option directement dans les pages du thème, là où se placeront les miniatures :
La fonction has_post_thumbnail() retourne vrai ou faux et indique si l’article en cours contient une Image à la Une.
<?php
if ( has_post_thumbnail() ) {
// si l'article à une miniature
} else {
// s'il n'en a pas...
}
?>
La fonction the_post_thumbnail() affiche la miniature.
<?php the_post_thumbnail(); ?>
Voila pour les bases de cette fonctionnalité.
Maintenant, comment procéder si vous souhaitez afficher une miniature de 50 x 50 pixels sur l’accueil du site et 200 pixels de large avec une hauteur indéterminée sur la page des archives ? Très simplement, en déclarant différentes retailles dans le fichier functions.php !
add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 50, 50, true ); // Miniatures de l'accueil add_image_size( 'miniature-archives', 200, 9999 ); // Miniatures des archives
Pour afficher les miniatures sur l’accueil :
<?php the_post_thumbnail(); ?>
Et sur la page des archives :
<?php the_post_thumbnail( 'miniature-archives' ); ?>
Chaque appel à la fonction add_image_size( $handle, $width, $height, {$hard_crop_switch} );, permet de définir une nouvelle taille de miniature.
Seul bémol de cette fonctionnalité, la génération de miniatures marche uniquement pour les nouvelles images. Celles déjà présentes dans la bibliothèque de médias, devront être générées en installant l’extension Regenerate Thumbnails .
Je trouve cet ajout très pratique dans la réalisation de sites sous WordPress, au niveau de sa mise en place mais également à l’utilisation. Je l’utilise pour différents projets dont celui-ci :
http://www.agrobio-bretagne.org
