From 77b0fa51ae27546b7d1cb77fdd0911bde0183539 Mon Sep 17 00:00:00 2001 From: obenland Date: Tue, 2 Jul 2013 17:41:51 -0400 Subject: [PATCH] _s: Simplifies the attached image template tag by only querying for ids. --- inc/template-tags.php | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/inc/template-tags.php b/inc/template-tags.php index 8b06a31..a07dafe 100644 --- a/inc/template-tags.php +++ b/inc/template-tags.php @@ -119,35 +119,38 @@ function _s_the_attached_image() { $next_attachment_url = wp_get_attachment_url(); /** - * Grab the IDs of all the image attachments in a gallery so we can get the URL - * of the next adjacent image in a gallery, or the first image (if we're - * looking at the last image in a gallery), or, in a gallery of one, just the - * link to that image file. + * Grab the IDs of all the image attachments in a gallery so we can get the + * URL of the next adjacent image in a gallery, or the first image (if + * we're looking at the last image in a gallery), or, in a gallery of one, + * just the link to that image file. */ - $attachments = array_values( get_children( array( + $attachment_ids = get_posts( array( 'post_parent' => $post->post_parent, + 'fields' => 'ids', + 'numberposts' => -1, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' - ) ) ); + ) ); // If there is more than 1 attachment in a gallery... - if ( count( $attachments ) > 1 ) { - foreach ( $attachments as $k => $attachment ) { - if ( $attachment->ID == $post->ID ) + if ( count( $attachment_ids ) > 1 ) { + foreach ( $attachment_ids as $attachment_id ) { + if ( $attachment_id == $post->ID ) { + $next_id = current( $attachment_ids ); break; + } } - $k++; // get the URL of the next image attachment... - if ( isset( $attachments[ $k ] ) ) - $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID ); + if ( $next_id ) + $next_attachment_url = get_attachment_link( $next_id ); // or get the URL of the first image attachment. else - $next_attachment_url = get_attachment_link( $attachments[0]->ID ); + $next_attachment_url = get_attachment_link( array_shift( $attachment_ids ) ); } printf( '%3$s',