Afficher une image par défaut dans vos articles
Cette astuce montre la méthode à suivre pour appeler une image par défaut, si vous n’avez pas d’image à la une à mettre pour votre article.
Depuis sa version 2.9, WordPress fournit une option de “miniature” qui permet de lier une image principale à votre article. Sur la page d’administration, cette fonctionnalité s’appelle Image à la Une.
Cependant, si vous n’avez pas d’image particulière à associer à votre article, vous pouvez simplement appeler une image par défaut.
Copiez le code ci-dessous dans votre boucle :
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
// On vérifie si une "Image à la une" est lié à l'article
if( has_post_thumbnail() ) {
// On affiche l'image à la Une
the_post_thumbnail();
} else {
// Sinon on affiche notre image par défaut
echo '<img src="' . get_bloginfo('template_directory') . '/images/default_post_thumb.jpg" alt="" />';
}
[/pastacode]
Qu’avons nous fait ?
- on vérifie à l’aide de
has_post_thumbnail()
que l’article contient une Image à la Une - si oui, on affiche l’image grâce à la fonction
the_post_thumbnail()
- si non, on affiche notre image par défaut
23 Commentaires
On peut également spécifier un thumbnail qu’au dernier article publié et non aux autres à l’aide d’un simple condition if (…){} :roll:
Merci pour l’astuce !
merci pour le code mais c’est bon pour un thème parent, si on utilise un thème enfant ? Merci
@Naoneo : Pour un mettre en place cela dans un thème enfant, il faut copier le fichier du thème parent dans le thème enfant et faire les modifications dans le fichier placé dans le thème enfant.
mais là c’est le fichier functions.php, on ne copie pas le fichier functions.php du thème parent dans le thème enfant.
il me semble qu’il faut modifier ce code ‘template_directory’
@ noaneo : Ce code n’est pas destiner à être dans le fichier functions.php, mais à l’intérieur d’un fichier de template dans une loop (je l’ai précisé dans l’article ^^).
désolé j’ai pu vu la ligne indiqué boucle, j’ai vu le code et cela m’a fait penser à un code pour functions.php.
si c’est pour une boucle, pas de souci, je sais le faire, mais j’ai un doute sur
template_directory
plus employé pour un thème parent qu’enfant@noaneo : La meilleure façon de soulever un doute est de tester ;)
c’est ce que je fais à chaque fois.
c’est bien ce que je pensais le code est pour un thème parent, pour un thème enfant remplacer
template_directory
parstylesheet_directory
ne voulant pas faire d’erreur, si je veux rajouter permalink , je mets où ? Merci
Pour ajouter l’image d’un lien, il faut remplacer :
par
Merci
Il devrait également être possible de mettre une image spécifique pour chaque catégorie ou post-type (je veux dire dans le cas où il n’y en a pas dans l’article), via une condition du genre
if( is_category('toto') ){ ... }
Bonjour,
Est-ce moi qui n’arrive pas à me faire avec la MAJ de wordpress 3.5.. mais on dirait que le lien ‘Ajouter l’image à la Une’ à disparu..
La fonctionnalité est-elle toujours présente et fonctionne toujours avec la fonction
the_post_thumbnail()
sous 3.5 ?Merci de votre réponse.
Cordialement.
@Rom : La fonction existe toujours et celle là n’est pas prête de disparaître un jour :)
c’est vrai je trouve que lien est moins visible avec le nouveau gestionnaire des médias mais il est bien là sinon lorsque vous créez votre article vers la droite, un peu en bas vous avez le cadre “Image à la une”
http://img96.imageshack.us/img96/5642/wordpressimagealaune.jpg
@Noaneo : Il est vrai que l’encart “Image à la Une” est trop peu visible… J’espère que cela sera régler avec la prochaine version de WordPress.
Bonjour,
exactement ce que je cherchais ou presque. En effet, je suis en train de refaire un de mes sites et je me voyais mal reprendre chaque article pour y mettre une miniature. Par contre, est-ce qu’il serait possible de mettre plusieurs images dans le dossier et d’en attribuer une aléatoirement au post pour ne pas avoir de doublons sur une page où il y a plusieurs articles.
Merci d’avance et bonne continuation.
@Clicpartout: Tout est possible ;)
Dans ce cas précis, il suffirait de stocker les URLs des images dans un array et de faire un random sur la clé à récupérer avec une adresse au hasard.
Jonathan :)
merci de m’avoir aiguillé, j’y suis arrivée. Comme je suis une bille en php, j’ai cherché sur le net et après avoir galéré 2 jours et passé par une flopée de Parse error, ça marche.
A bientôt
Bien cool, par contre je n’arrive pas à modifier pour SUPPRIMER l’image à la une après un certain temps de manière automatique.
need help =)
@++
Seb
Dans le cas où l’on part d’un thème from scratch, il faut au préalable activer cette fonction dans functions.php en rajoutant la ligne :
add_theme_support( ‘post-thumbnails’ );
Sinon l’option mettre une image à la une ne s’activera pas dans l’admin.
Bonjour, comment peut-on rajouter une classe à the_post_thumbnail(); ? J’ai bien trouvé quelque chose avec un array et attribut mais j’ai une erreur de syntaxe… :-( . Si quelqu’un peut me donner la bonne syntaxe =).
Je ne sais pas si je vais avoir une réponse mais je tente le coup.lol
Ce tutoriel est-il toujours d’actualité ?
Si oui, peut-on répondre à certaines de mes questions ?
1). Il faut bien insérer ce code dans le fichier functions ? Ou ailleurs ?
2). Mon rêve :
Quand on voit mes derniers articles en ligne (en page d’accueil), que soit affiché un extrait de l’article et la première image (en miniature) que l’article contient. Mais si je n’ai pas d’image dans un article (ce qui peut arriver), avoir quand même une image, selon la catégorie où se place l’article.
D’après ce que je lis, je vois que c’est possible…comment ? Pas trop compris. :S
Merci par avance.