WordPress.org

Make WordPress Core

Changeset 24402


Ignore:
Timestamp:
06/03/13 21:44:25 (21 months ago)
Author:
lancewillett
Message:

Twenty Thirteen: Clean up image attachment template and move logic to twentythirteen_the_attached_image() function. Props obenland, fixes #24479.

Location:
trunk/wp-content/themes/twentythirteen
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-content/themes/twentythirteen/functions.php

    r24393 r24402  
    421421endif; 
    422422 
     423if ( ! function_exists( 'twentythirteen_the_attached_image' ) ) : 
     424/** 
     425 * Prints the attached image with a link to the next attached image. 
     426 * 
     427 * @since Twenty Thirteen 1.0 
     428 * 
     429 * @return void 
     430 */ 
     431function twentythirteen_the_attached_image() { 
     432    $post                = get_post(); 
     433    $attachment_size     = apply_filters( 'twentythirteen_attachment_size', array( 724, 724 ) ); 
     434    $next_attachment_url = wp_get_attachment_url(); 
     435 
     436    /** 
     437     * Grab the IDs of all the image attachments in a gallery so we can get the URL 
     438     * of the next adjacent image in a gallery, or the first image (if we're 
     439     * looking at the last image in a gallery), or, in a gallery of one, just the 
     440     * link to that image file. 
     441     */ 
     442    $attachments = array_values( get_children( array( 
     443        'post_parent'    => $post->post_parent, 
     444        'post_status'    => 'inherit', 
     445        'post_type'      => 'attachment', 
     446        'post_mime_type' => 'image', 
     447        'order'          => 'ASC', 
     448        'orderby'        => 'menu_order ID' 
     449    ) ) ); 
     450 
     451    // If there is more than 1 attachment in a gallery... 
     452    if ( count( $attachments ) > 1 ) { 
     453        foreach ( $attachments as $k => $attachment ) { 
     454            if ( $attachment->ID == $post->ID ) 
     455                break; 
     456        } 
     457        $k++; 
     458 
     459        // get the URL of the next image attachment... 
     460        if ( isset( $attachments[ $k ] ) ) 
     461            $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID ); 
     462 
     463        // or get the URL of the first image attachment. 
     464        else 
     465            $next_attachment_url = get_attachment_link( $attachments[0]->ID ); 
     466    } 
     467 
     468    printf( '<a href="%1$s" title="%2$s" rel="attachment">%3$s</a>', 
     469        esc_url( $next_attachment_url ), 
     470        the_title_attribute( array( 'echo' => false ) ), 
     471        wp_get_attachment_image( $post->ID, $attachment_size ) 
     472    ); 
     473} 
     474endif; 
     475 
    423476/** 
    424477 * Returns the URL from the post. 
  • trunk/wp-content/themes/twentythirteen/image.php

    r23758 r24402  
    1010 */ 
    1111 
    12 the_post(); 
    13  
    14 /** 
    15  * 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, 
    16  * 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 
    17  */ 
    18 $attachments = array_values( get_children( array( 
    19     'post_parent' => $post->post_parent, 
    20     'post_status' => 'inherit', 
    21     'post_type' => 'attachment', 
    22     'post_mime_type' => 'image', 
    23     'order' => 'ASC', 
    24     'orderby' => 'menu_order ID' 
    25 ) ) ); 
    26  
    27 foreach ( $attachments as $k => $attachment ) : 
    28 if ( $attachment->ID == $post->ID ) 
    29     break; 
    30 endforeach; 
    31  
    32 $k++; 
    33 // If there is more than 1 attachment in a gallery 
    34 if ( count( $attachments ) > 1 ) : 
    35     if ( isset( $attachments[ $k ] ) ) : 
    36         // get the URL of the next image attachment 
    37         $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID ); 
    38     else : 
    39         // or get the URL of the first image attachment 
    40         $next_attachment_url = get_attachment_link( $attachments[ 0 ]->ID ); 
    41     endif; 
    42 else : 
    43     // or, if there's only 1 image, get the URL of the image 
    44     $next_attachment_url = wp_get_attachment_url(); 
    45 endif; 
    46  
    4712get_header(); ?> 
    4813 
     
    5520                    <div class="entry-meta"> 
    5621                        <?php 
    57                             $published_text  = __( '<span class="attachment-meta">Published on <time class="entry-date" datetime="%1$s">%2$s</time> in <a href="%3$s" title="Return to %4$s" rel="gallery">%5$s</a></span>', 'twentythirteen' ); 
     22                            $published_text = __( '<span class="attachment-meta">Published on <time class="entry-date" datetime="%1$s">%2$s</time> in <a href="%3$s" title="Return to %4$s" rel="gallery">%5$s</a></span>', 'twentythirteen' ); 
    5823                            $post_title = get_the_title( $post->post_parent ); 
    5924                            if ( empty( $post_title ) || 0 == $post->post_parent ) 
    60                                 $published_text  = '<span class="attachment-meta"><time class="entry-date" datetime="%1$s">%2$s</time></span>'; 
     25                                $published_text = '<span class="attachment-meta"><time class="entry-date" datetime="%1$s">%2$s</time></span>'; 
    6126 
    6227                            printf( $published_text, 
     
    7742                            ); 
    7843 
    79                             edit_post_link( __( 'Edit', 'twentythirteen' ), '<span class="edit-link">', '</span>' ); ?> 
     44                            edit_post_link( __( 'Edit', 'twentythirteen' ), '<span class="edit-link">', '</span>' ); 
     45                        ?> 
    8046                    </div><!-- .entry-meta --> 
    8147                </header><!-- .entry-header --> 
     
    8955                    <div class="entry-attachment"> 
    9056                        <div class="attachment"> 
    91                             <a href="<?php echo esc_url( $next_attachment_url ); ?>" title="<?php the_title_attribute(); ?>" rel="attachment"><?php 
    92                             $attachment_size = apply_filters( 'twentythirteen_attachment_size', array( 724, 724 ) ); 
    93                             echo wp_get_attachment_image( $post->ID, $attachment_size ); 
    94                             ?></a> 
     57                            <?php twentythirteen_the_attached_image(); ?> 
    9558 
    96                             <?php if ( ! empty( $post->post_excerpt ) ) : ?> 
     59                            <?php if ( has_excerpt() ) : ?> 
    9760                            <div class="entry-caption"> 
    9861                                <?php the_excerpt(); ?> 
     
    10063                            <?php endif; ?> 
    10164                        </div><!-- .attachment --> 
    102  
    10365                    </div><!-- .entry-attachment --> 
    10466 
     
    11173 
    11274                </div><!-- .entry-content --> 
    113  
    11475            </article><!-- #post --> 
    11576 
Note: See TracChangeset for help on using the changeset viewer.