Afficher les miniatures des articles de votre blog

Voici une autre manière d’afficher simplement et rapidement les miniatures de chacun de vos articles de votre blog. Contrairement au plugin que je vous ai présenté il y a quelques heures « WP-Choose-Thumb« , cette fonction affichera les miniatures sur l’ensemble de vos articles, sans toucher a d’autres bricoles, il vous suffit simplement d’appeler la fonction , de personnaliser son affichage et d’enregistrer. Via WPHackr

Cette fonction, qu’on peut appeler « Get Image Post » vous facilitera la tâche pour une nouvelle version de votre blog, ou simplement un relookage de votre page d’accueil et de vos autres pages telles que la page recherche ou encore ceux des catégories. Ce code peut s’utiliser n’importe où a condition de le placer dans le « loop » de wordpress. Toutefois, il faut préalablement définir une taille pour vos miniatures. Les images déjà uploader ne pourront être modifiées si vous êtes amener a changer la taille.


Tout d’abord, ce code sera placé dans le fichier « functions.php » dans le dossier de votre thème. Si vous ne l’avez toujours pas créé, faite-le ! Grâce a ce fichier nous pourrons appeler la fonction plusieurs fois , en toute simplicité grâce à un morceau de code; Nous éviterons ainsi de trop surcharger le code source de vos fichier .php.

[php]function getpost_img($postId) {
$iPostID = $postId;

$arrImages =& get_children(‘post_type=attachment&post_mime_type=image&post_parent=’ . $iPostID );
if($arrImages) {

$arrKeys = array_keys($arrImages);

foreach($arrImages as $oImage) {
$arrNewImages[] = $oImage;
}

for($i = 0; $i < sizeof($arrNewImages) - 1; $i++) { for($j = 0; $j < sizeof($arrNewImages) - 1; $j++) { if((int)$arrNewImages[$j]->menu_order > (int)$arrNewImages[$j + 1]->menu_order) {
$oTemp = $arrNewImages[$j];
$arrNewImages[$j] = $arrNewImages[$j + 1];
$arrNewImages[$j + 1] = $oTemp;
}
}
}

$arrKeys = array();
foreach($arrNewImages as $oNewImage) {
$arrKeys[] = $oNewImage->ID;
}

$iNum = $arrKeys[0];
$sThumbUrl = wp_get_attachment_thumb_url($iNum);

$sImgString =  » .
 » .
 »;

echo $sImgString;
}
}
[/php]

Certes, cette fonction est assez longue pour n’afficher qu’une simple image, celle de vos articles, mais cela vaut vraiment le coup. Maintenant nous allons utiliser le code suivant pour appeler cette fonction; N’oubliez pas, il faut absolument que ce code soit dans la boucle des articles WordPress.

[php]< ? getpost_img($post->ID); ?>[/php]

Pour les plus débutant voici un exemple d’intégration dans la boucle wordpress. La fonction « the_content_rss » est utilisé pour « couper » votre article. Cela donne un extrait qui va parfaitement avec l’image; Le chiffre correspond au nombre de caractère, à vous de le personnaliser.

[php]
< ?php if (have_posts()) : ?>
< ?php while (have_posts()) : the_post(); ?>

 » rel= »bookmark » title= »Lien permanent vers < ?php the_title_attribute(); ?>« >< ?php the_content_rss('', TRUE, '', 105); ?>

< ?php endwhile; ?>
< ?php endif; ?>
[/php]

Je vous propose également un excellent moyen de retoucher vos photos en ligne gratuitement.

Allez plus loins

7 réponses

  1. C’est justement une fonction que je recherchai ! Merci :)
    J’avais essayé ce plugin :
    Mais la mise en page est énorme et finalement pas très flexible.

    Sympa ton blog j’aime beaucoup.

  2. Ping : Vent des blogs #35 | Fredzone
  3. Bonjour et tout d’abord merci pour cette astuce qui m’est bien utile.

    Cependant, je rencontre un petit problème, j’ai des articles avec 3 photos et ce script m’affiche une des trois photos en miniature.
    Le problème c’est que je ne peux pas choisir la photo qu’il va afficher et je souhaiterais afficher la première.
    Avez vous une solution ?
    Merci d’avance.

  4. Bonjour !
    Je cherche à faire ça depuis un paquet de temps et je suis enfin très content de tomber sur une explication.
    J’ai essayé d’ajouter la fonction dans mon fichier functions.php dans mon répertoire de thème mais j’ai eu l’erreur suivante :

    Fatal error: Cannot redeclare mysql2date() (previously declared in ************/wp-includes/functions.php:25) in *************/wp-content/themes/tripwiring-release-01/functions.php on line 43

    Est-ce le code que tu donnes est toujours valable pour la version actuelle de WordPress ?
    Si quelqu’un a un début d’explication, je suis preneur.

    Merci. :)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *