WordPress category page not returning array correctly

I am editing my category page. Using some custom fields I am defining an image. For each post within a category I want to add this custom image to an array which I am turning into a gallery of images. I’m using the below code, but for some reason when it comes to imploding the array all I get back is one image (which corresponds to the last post that’s loaded in). I’m sure there is probably just something I’ve put in the wrong place but I just can’t figure it out. Any help would be much appreciated.

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

                        $gallery_images = get_custom_field('catImage:to_array');


                            $thumbs_html = array();
                            foreach ($gallery_images as $galleryID) {
                                $attachment = get_post( $galleryID );

                                $description = get_custom_field('catIntro:do_shortcode'); //get pages introductory text
                                $caption = get_the_title(); //get page title

                                $button_html .= '<div id="description-button-' . $gallery_images_count . '" class="show-description-button">Show Caption</div>';
                                $description_html .= '<div id="description-' . $gallery_images_count . '" class="photoDescription" style="display:none;">' . $description . '</div>';
                                $caption_html .= '<div id="caption-' . $gallery_images_count . '" class="photoCaption" style="display:none;">' . $caption . '</div>';

                                $thumb_img = wp_get_attachment_image_src( $galleryID, 'thumbnail' );    //thumbnail src
                                $full_img = wp_get_attachment_image_src( $galleryID, 'full' );          //full img src

                                $thumbs_html[] = '<div class="indvlThumbCont"><a href="' . $full_img[0] . '" id="description-button-' . $gallery_images_count . '" class="thumbLink" target="_blank"><img  class="thumbImg" src="' . $thumb_img[0] .'"></a></div>';

                                $gallery_images_count++;



                            }//end forEach


                    //calculate the width of the thumbar
                    $widthPerImg = 157;
                    $thumbBarWidth = $gallery_images_count * $widthPerImg;
                    print $gallery_images_count;

            ?>


            <?php endwhile; else: ?>
            <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
            <?php endif; ?> 


            <div id="thumbsBar">
                <div id="left" class="scrollCtrl left desktopOnly"><span></span></div>

                    <div class="toHideScrollBar" id="toHideScrollBar">
                    <div class="moveCanvas" style="width:<?php echo $thumbBarWidth; ?>px;">
                        <?php echo implode("n", $thumbs_html); ?>
                    </div>
                    </div>

                <div id="right" class="scrollCtrl right desktopOnly"><span></span></div>
                <span id="total_number_in_gallery " class="<?php echo $gallery_images_count; ?>"></span>
            </div>

Related posts

Leave a Reply

1 comment

  1. If you are using a theme like TwentyTwelve (which by default only displays one post on the category page) then that’s where the issue is. You’ll solve this by (if you are fine with modifying the main loop), adding this just before your code:

    query_posts('showposts=y&cat=x');