Je ne vous ferai pas l’affront d’expliquer comment ajouter une légende à une image quand on édite un article. Ici, il s’agit d’ajouter dans votre thème une légende à l’image mise en avant d’un article, si vous l’utilisez dans le template single.php.

Première chose, créer une fonction qui va afficher le contenu de la légende – fonction à ajouter dans functions.php du thème :

function djth_post_thumbnail_caption() 
{
     $thumbnail_image = get_posts
    ( 
        array
        (
            'p' => get_post_thumbnail_id(), 
            'post_type' => 'attachment'
        )
    ) ;
     if( $thumbnail_image && isset( $thumbnail_image[0] ) ) 
    {
         echo $thumbnail_image[0]->post_excerpt ;
    }
}

Cette fonction récupère l’image mise en avant (thumbnail) de l’article courant ($thumbnail_image) grâce à la fonction get_post_thumbnail_id(), puis extrait et affiche la légende de l’image ($thumbnail_image[0]->post_excerpt

Ensuite, ajouter l’affichage de la légende dans le template d’article single.php, juste en-dessous du code qui affiche l’image mise en avant (ce dernier devrait ressembler plus ou moins ce qui est dans le <div class= »post-thumbnail »>) :

< ?php if( has_post_thumbnail() ) : // Check if thumbnail exists ?>
<div class="post-thumbnail">
    <a href="< ?php the_permalink() ; ?>" title="< ?php the_title() ; ?>">
          < ?php the_post_thumbnail( 'large' ) ; ?>
    </a>
</div> < !-- /post-thumbnail -->
<div class="post-thumbnail-caption">
< ?php djth_post_thumbnail_caption() ; ?>
</div> < !-- /post-thumbnail-caption -->
< ?php endif ; ?>

La légende est donc affichée dans le <div class= »post-thumbnail-caption »>

Enfin, un peu de CSS pou mettre tout ça en forme, par exemple :

.post-thumbnail-caption
{
     background : #EEEEEE ;
    text-align : center ;
    color : #555555 ;
    padding : 5px 10px ;
}

Source :

  • https ://stackoverflow.com/questions/13850313/how-to-add-a-featured-image-caption-in-wordpress

Tags : ,

Classés dans :