WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

hey guys, didn't know that, but the attachement page (i'm using attachment.php as template) is actually looping through ALL ever uploaded attachments to my blog!

I just want to use it in order to view the images of a gallery etc. So I just want to loop through the images that are specific to the current post.

Any idea how to solve that?


<div class="posts-container">   

    <?php get_template_part( 'loop', 'attachment' ); ?>

</div> <!-- posts-container -->


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

                <article <?php post_class() ?> id="post-<?php the_ID(); ?>">

                    <div class="entry">

                        <div class="entry-attachment">

<?php if ( wp_attachment_is_image() ) :
    $attachments = array_values( get_children( array( 'post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ) );
    foreach ( $attachments as $k => $attachment ) {
        if ( $attachment->ID == $post->ID )
    // If there is more than 1 image attachment in a gallery
    if ( count( $attachments ) > 1 ) {
        if ( isset( $attachments[ $k ] ) )
            // get the URL of the next image attachment
            $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID );
            // or get the URL of the first image attachment
            $next_attachment_url = get_attachment_link( $attachments[ 0 ]->ID );
    } else {
        // or, if there's only 1 image attachment, get the URL of the image
        $next_attachment_url = wp_get_attachment_url();
                        <div class="attachment">
                            <!-- <a href="<?php echo $next_attachment_url; ?>" title="<?php echo esc_attr( get_the_title() ); ?>" rel="attachment"> -->

                            $attachment_width  = apply_filters( 'attachment_width', 1068 );
                            $attachment_height = apply_filters( 'attachment_height', 1068 );
                            echo wp_get_attachment_image( $post->ID, array( $attachment_width, $attachment_height ) ); // filterable image width with, essentially, no limit for image height.
                            <!-- </a> -->

                            <div class="nav-previous">
                                <?php previous_image_link( false, '&nbsp;' ); ?>
                            <div class="nav-next">
                                <?php next_image_link( false, '&nbsp;' ); ?>


<?php endif; ?>
                        </div><!-- .entry-attachment -->

                        <div class="entry-caption">

                        <?php if ( !empty( $post->post_excerpt ) ) the_excerpt(); ?>


                    </div><!-- entry -->

                </article><!-- post -->

<?php //comments_template(); ?>

<?php endwhile; // end of the loop. ?>
share|improve this question
I think that is theme depended, what theme are you using, or even better post your attachement.php file's code. – Bainternet Apr 17 '11 at 9:47
Updated my question with the template code! – mathiregister Apr 18 '11 at 7:24
why did my question get a down vote? – mathiregister Apr 22 '11 at 6:55
up vote 2 down vote accepted

The attachment.php is a specific template in the WordPress template hierarchy. WordPress uses it for a specific purpose, and the default Loop just won't do what you're claiming it's doing. (The behavior you're describing would be analogous to the single.php template file looping through all Posts.)

I'm guessing your attachment.php template file has a custom Loop. As Baiternet asked above, can you post or link the markup of your attachment.php template file?

share|improve this answer
that is correct but its not really an answer and should be a comment. – Bainternet Apr 17 '11 at 13:45
@Baiternet: I'm hoping I can revise my answer once the code is posted. – Chip Bennett Apr 18 '11 at 1:00
Thank you. Updated my question with the template code! – mathiregister Apr 18 '11 at 7:24

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.