Afficher les images attachées d’un article sans l’image à la une
Cette astuce permet de récupérer et d’afficher toutes les images attachées à un article en n’oubliant pas d’exclure l’image à la une.
Lors du développement d’un thème personnalisé, je devais récupérer et afficher toutes les images attachées d’un article. Ces images permettront par la suite de créer une galerie photo. De plus, il fallait faire en sorte que l’image à la une de l’article ne soit pas présente dans cette galerie.
Grâce à la configuration des paramètres de la fonction get_children()
de WordPress, il est facile de se procurer les images d’un article tout en excluant l’image à la une.
Copier le code ci-dessous dans le fichier single.php
de votre thème à l’endroit où la galerie doit être affichée :
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
<?php
// On récupère la liste des images attachées à l'article
$attachments = get_children( array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_parent' => get_the_ID(),
'exclude' => get_post_thumbnail_id()
) );
// On teste si on a des images ou non
if ( $attachments ) {
echo '<figure>';
foreach ( $attachments as $attachment ) {
// On affiche l'image dans un lien hypertexte
echo wp_get_attachment_link( $attachment->ID, 'thumbnail' );
}
echo '</figure>';
}
?>
[/pastacode]
Grâce à la clé 'exclude'
du tableau passé en argument de la fonction get_children()
, on a pu préciser qu’on ne devait pas prendre en compte l’image à la une de l’article dont l’ID a été récupéré à l’aide de la fonction get_post_thumbnail()
.
10 Commentaires
C’est pratique, ca évite de modifier le shortcode et d’aller chercher l’id à exclure!
Question sans trop de rapport, est il possible d’afficher une image à la une par defaut pour les non membres?
@Julio, merci je vais regarder comment l’intégrer !!
Je n’ai jamais utilisé get_children(), merci pour la démo !
@denny : oui, dans ton thème joue avec “if( is_user_loged_in() )…”
Donc en fait c’est l’exact contraire de ce que je proposais ici : http://wpchannel.com/recuperer-premiere-image-article-wordpress/ ? Bon complément ! ;)
Merci boiteaweb, ca fonctionne, mais il faut 2 g ;)
super reactif ;) en tout cas ca répond à mon besoin!!
merci
Ho oui pardon ! :)
Bonjour,
Merci pour l’astuce. Par contre j’aurais une question. Avant cette manipulation je pouvais utiliser lightbox sur ma galerie. Le plugin ne marche plus avec ce code. Aurais-tu une idée pour résoudre ce problème ?
@Jeremy : L’astuce ne permet de créer une galerie. Elle permet simplement d’afficher toutes les images attachées à un article. Par conséquent, si vous créer une galerie avec un plugin, il ne devrait pas avoir de conflit.
Est-ce que cette méthode pourrait me permettre de récupérer une image attachée à un portfolio (plugin Go Portfolio) ?