0

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?

attachment.php

<div class="posts-container">   

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

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

loop-attachment.php

<?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 )
            break;
    }
    $k++;
    // 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 );
        else
            // 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"> -->

                            <?php
                            $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>
                            <div class="nav-next">
                                <?php next_image_link( false, '&nbsp;' ); ?>
                            </div>

                        </div>

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

                        <div class="entry-caption">

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

                        </div>

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

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

<?php //comments_template(); ?>

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

1 Answer 1

2

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?

2
  • that is correct but its not really an answer and should be a comment.
    – Bainternet
    Apr 17, 2011 at 13:45
  • @Baiternet: I'm hoping I can revise my answer once the code is posted. Apr 18, 2011 at 1:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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