Bonjour,

Sur ma homepage, je veux afficher les images qui sont dans les articles
Voilà ce que j'ai fait pour le moment

<?php
 $args = array(
     'post_type' => 'attachment',
     'posts_per_page' => -1,
     'post_parent__not_in' => array(0),
     'post_status'=> 'inherit',
     );

 $attachments = get_posts( $args );
 if ( $attachments ) {
     foreach ( $attachments as $post ) {
         setup_postdata( $post );
         the_title();
         the_attachment_link( $post->ID, false );
         the_excerpt();
     }
     wp_reset_postdata();
 }
 ?>

Donc, là ca m'affiche les titres des images et les images. Quand je clique sur l'image, celle-ci s'affiche grand format.

Ce que je veux, est lorsqu'on clique sur l'image, ca nous redirige vers l'article qui contient cette image et non agrandir l'image.
Je suis avec wordpress version 4.0

Merci de votre aide

4 réponses


karmalo
Auteur
Réponse acceptée

Bon, finalement, j'ai opté pour l'image à la une. Car, j'ai mis d'autres choses sur le site et ca deviendrait trop compliqué à gérer.
Dans ma page d'accueil, j'ai récupéré toutes les images à la une et quand on clique dessus, ca nous amène sur l'article.

voici le code

<?php
                    $thumbnails = get_posts();
                    foreach ( $thumbnails as $thumbnail ) {
                            if ( has_post_thumbnail( $thumbnail->ID ) ) {
                                    echo '<a href="' . get_permalink( $thumbnail->ID ) . '" title="' . esc_attr( $thumbnail->post_title ) . '">';
                                    echo get_the_post_thumbnail( $thumbnail->ID, 'thumbnail' );
                                    echo '</a>';
                            }
                    }
                    ?>

j'ai trouvé ca, dans le codex

Salut,
Depuis ton article, lorsque tu cliques sur l'icône modifier (sur l'image en question), dans réglages de l'affichage tu as "lier à" :[Page du fichier attaché].
Quand tu visionnes l'article ça fonctionne, essaye de voir si depuis ta page d'accueil ça peut le faire ;)

'post_parent__not_in' => array(0),

est inutile. Il n'existe pas de post avec l'ID 0. Pour faire ce que tu veux il faut le faire autrement et ne plus passer par the_attachment_link() :

echo '<a href="' . get_permalink( $post->ID ) . '" title="' . the_title_attribute( array( 'echo' => false ) ) . '">' . get_the_post_thumbnail( $post->ID, 'full' ) . '</a>';
karmalo
Auteur

Bonjour,

J'ai testé d'abord la solution de Pierre, mais je constate quand ré-actulisant la page, il me garde l'ancienne url.
ce n'est pas normal, je ne comprends pas pourquoi il fait ca.

Julien, j'ai supprimé tout mon code pour le remplacer par le tien, ca ne fonctionne pas. J'ai testé juste en remplacement de "the attachment link", rien ne se passe non plus, et en plus, mais images disparaissent.
Sinon, post parent not in, j'ai mis la valeur 0, tout simplement pour qu'il ne me récupère pas l'image du background.
Je suis passée par l'admin, pour intégrer une image de fond, comme ca, on change comme on veut. Dans le phpmy admin, j'ai vu que le n° de l'ID dans post parent est 0.