Make WordPress Core

Ticket #20519: 20519.diff

File 20519.diff, 2.8 KB (added by ryan, 12 years ago)
  • wp-includes/template.php

     
    8282
    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
    8991        return get_query_template( 'author', $templates );
     
    106108
    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
    113117        return get_query_template( 'category', $templates );
     
    130134
    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
    137143        return get_query_template( 'tag', $templates );
     
    156162 */
    157163function get_taxonomy_template() {
    158164        $term = get_queried_object();
    159         $taxonomy = $term->taxonomy;
    160165
    161166        $templates = array();
    162167
    163         $templates[] = "taxonomy-$taxonomy-{$term->slug}.php";
    164         $templates[] = "taxonomy-$taxonomy.php";
     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
    167175        return get_query_template( 'taxonomy', $templates );
     
    280288
    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
    286295        return get_query_template( 'single', $templates );
     
    303312 */
    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
    317332/**