Définir une miniature d’article par défaut sous WordPress

Le module Image à la une introduit sous WordPress 2.9 permet d'afficher une image d'accroche pour vos articles.

Les thèmes WordPress sont très friands de ce type de fonctionnalité… mais cela vous oblige à définir une image pour chacun de vos billets pour éviter de « casser » l’affichage de votre site. Prévenons ce problème en définissant une image par défaut.

Connectez-vous au back office de WordPress puis rendez-vous dans le menu Apparence puis Editeur.

Là, cliquez sur le lien correspondant à l’emplacement où vous souhaitez insérer la miniature par défaut. Essayez par exemple dans single.php pour l’afficher dans vos articles et placez les lignes à l’intérieur de la boucle.

Pour rappel, la boucle commence par :

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

Vous pouvez bien entendu passez par un client FTP et modifiez ledit fichier en le localisant dans /wp-content/themes/NOM_DU_THEME/

Ajoutez ensuite les lignes de code suivantes :

if (has_post_thumbnail()) {
	the_post_thumbnail();
} else {
	echo '<img src="' . get_bloginfo('template_directory') . '/images/image-defaut.jpg" />';
}

N’oubliez pas de sauvegarder le fichier.

Désormais, à chaque fois que vous publierez un article sans indiquer d’image à la une, la miniature par défaut s’affichera en lieu et place.

Par Aurélien Denis

Another WordPress fanboy. Fondateur de WordPress Channel et WP Alacarte, président de l'association WordPress Francophone (2016-2017) et WordPress Meet & eXchange, gérant de la société Neticpro, co-organisateur du WPMX Day et du WordCamp Bordeaux, et plus encore.

Des tutoriels et des bons plans en exclusivité !
  • Ce champ n’est utilisé qu’à des fins de validation et devrait rester inchangé.
21 commentaires
  1. nZAngel

    Bonjour,

    merci pour cette astuce mais perso ça ne fonctionne pas, il ne reconnait pas la fonction has_post_thumbnail()
    Je suis en 3.3.1

    1. Aurélien Denis auteur de l’article

      Tu as rajouté les balises PHP dans le code ?

      Est-ce que ton thème supporte les miniatures ?

      Je ne pense pas qu’il y ait d’erreur dans le code…

  2. Mimi

    Ça ne fonctionne pas non plus pour moi (thème Mystique). L’ajout de ce code provoque un crash total du blog au point de devoir restaurer le fichier fonctions.php via Filezilla.

  3. Aurélien Denis auteur de l’article

    Il y a peut-être une incompatibilité avec la 3.3. Je vais re-tester ces lignes de code demain. 😉

    1. Aurélien Denis auteur de l’article

      Heureusement que tu relis mes articles ! 😉

      Faut vraiment que j’arrête WordPress le dimanche soir moi…

      1. GeekPress

        lol
        Je connaissais aussi tkt, j’ai le même problème =D

  4. Mimi

    Ça ne fonctionne pas et en plus ça m’ajoute une miniature inutile au-dessus des articles seuls.

    1. Cybercraft

      Ça ne veut dire qu’une seul chose :
      Tu as mis ce bout de code dans single.php et que ce n’était apparemment pas l’endroit ou tu voulais voir apparaitre ton thumbnail.

      1. Mimi

        Oui autant pour moi j’avais mal compris l’article. Mes excuses.

  5. nZAngel

    Effectivement, j’ai recherché la fonction et il faut bien la mettre dans le loop et là plus de problème 🙂

    merci

  6. el rahi

    Bonjour à tous,
    je suis en train de créer un thème pour WP et j’ignore quel codex utiliser pour mettre qu’une partie du texte dans la page d’accueil.
    Quelqu’un peut il me guider?
    Merci. Louis

      1. El Rahi

        Merci pour ta réponse. Je vais la tester. Bonne journée.

  7. barjel

    Bonjour,

    bon c’est exactement ce que je cherche mais comme je n’y connais rien ça ne fonctionne pas ! Pour commencer je ne trouve même pas ça: dans le single.php de mon thème ???? (Mystique 3.3)

    ensuite je suppose qu’il faut ajouter le chemin de l’image par défaut, non? et donc où?

    if(has_post_thumbnail()){
    the_post_thumbnail();
    } else {
    echo  »;
    }

    voilà! désolé pour ces questions de débutant mais débutant je suis !

    Cordialement

    1. Aurélien Denis auteur de l’article

      Le chemin de l’image par défaut est à indiqué dans la ligne 4 où il y a un echo. Dans l’exemple, il suffit d’envoyer dans un dossier images du thème, un fichier image-defaut.jpg.

      1. barjel

        Bon merci mais je n’y arrive pas… quelqu’un m’a dit que le thème mystique utiliser Atom et que’il fallait modifier autre chose mais rien à faire c’est au-dessus de mes compétences !

        Merci encore et bonne continuation !

        1. noaneo

          la modification vous la faites dnas le fichier teaser.php ?? Sous la ligne 87 ????

  8. noaneo

    Pour le site d’une association ,j’ai installé le thème Yoko,le code pour post_thumbnail n’est pas tout à fait comme sur l’exemple.
    Comme je ne sais plus comment mettre un code ici,j’ai mis le code sur un site test,désolé.
    http://er.v.free.fr/?page_id=548

    Merci par avance

  9. Clicpartout

    Bonjour,
    merci pour cette astuce qui va bien me servir car je dois remettre au goût du jour plusieurs de mes sites et je me voyais mal éditer tous les articles pour y mettre une image à la une. Par contre est-ce qu’il y aurai un moyen de prendre une image aléatoire dans le dossier pour ne pas avoir trop de doublons.
    Merci d’avance.

Laisser un commentaire