Make WordPress Core

Changeset 22293


Ignore:
Timestamp:
10/25/2012 12:54:50 PM (12 years ago)
Author:
ryan
Message:

Avoid notices in get_*_template() functions that use get_queried_object(), which can return null. Props wonderboymusic. fixes #20519

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/template.php

    r21861 r22293  
    8383    $templates = array();
    8484
    85     $templates[] = "author-{$author->user_nicename}.php";
    86     $templates[] = "author-{$author->ID}.php";
     85    if ( $author ) {
     86        $templates[] = "author-{$author->user_nicename}.php";
     87        $templates[] = "author-{$author->ID}.php";
     88    }
    8789    $templates[] = 'author.php';
    8890
     
    107109    $templates = array();
    108110
    109     $templates[] = "category-{$category->slug}.php";
    110     $templates[] = "category-{$category->term_id}.php";
     111    if ( $category ) {
     112        $templates[] = "category-{$category->slug}.php";
     113        $templates[] = "category-{$category->term_id}.php";
     114    }
    111115    $templates[] = 'category.php';
    112116
     
    131135    $templates = array();
    132136
    133     $templates[] = "tag-{$tag->slug}.php";
    134     $templates[] = "tag-{$tag->term_id}.php";
     137    if ( $tag ) {
     138        $templates[] = "tag-{$tag->slug}.php";
     139        $templates[] = "tag-{$tag->term_id}.php";
     140    }
    135141    $templates[] = 'tag.php';
    136142
     
    157163function get_taxonomy_template() {
    158164    $term = get_queried_object();
    159     $taxonomy = $term->taxonomy;
    160 
    161     $templates = array();
    162 
    163     $templates[] = "taxonomy-$taxonomy-{$term->slug}.php";
    164     $templates[] = "taxonomy-$taxonomy.php";
     165
     166    $templates = array();
     167
     168    if ( $term ) {
     169        $taxonomy = $term->taxonomy;
     170        $templates[] = "taxonomy-$taxonomy-{$term->slug}.php";
     171        $templates[] = "taxonomy-$taxonomy.php";
     172    }
    165173    $templates[] = 'taxonomy.php';
    166174
     
    281289    $templates = array();
    282290
    283     $templates[] = "single-{$object->post_type}.php";
     291    if ( $object )
     292        $templates[] = "single-{$object->post_type}.php";
    284293    $templates[] = "single.php";
    285294
     
    304313function get_attachment_template() {
    305314    global $posts;
    306     $type = explode('/', $posts[0]->post_mime_type);
    307     if ( $template = get_query_template($type[0]) )
    308         return $template;
    309     elseif ( $template = get_query_template($type[1]) )
    310         return $template;
    311     elseif ( $template = get_query_template("$type[0]_$type[1]") )
    312         return $template;
    313     else
    314         return get_query_template('attachment');
     315
     316    if ( ! empty( $posts ) && isset( $posts[0]->post_mime_type ) ) {
     317        $type = explode( '/', $posts[0]->post_mime_type );
     318
     319        if ( ! empty( $type ) ) {
     320            if ( $template = get_query_template( $type[0] ) )
     321                return $template;
     322            elseif ( $template = get_query_template( $type[1] ) )
     323                return $template;
     324            elseif ( $template = get_query_template( "$type[0]_$type[1]" ) )
     325                return $template;
     326        }
     327    }
     328
     329    return get_query_template( 'attachment' );
    315330}
    316331
Note: See TracChangeset for help on using the changeset viewer.