WordPress.org

Make WordPress Core

Changeset 13252


Ignore:
Timestamp:
02/20/10 12:58:25 (4 years ago)
Author:
nacin
Message:

Add template_include filter, to modify the template path before it is included. Fixes #11242

File:
1 edited

Legend:

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

    r13209 r13252  
    44 * @package WordPress 
    55 */ 
    6 if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) { 
     6if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) 
    77    do_action('template_redirect'); 
    8     if ( is_robots() ) { 
    9         do_action('do_robots'); 
    10         return; 
    11     } else if ( is_feed() ) { 
    12         do_feed(); 
    13         return; 
    14     } else if ( is_trackback() ) { 
    15         include(ABSPATH . 'wp-trackback.php'); 
    16         return; 
    17     } else if ( is_404() && $template = get_404_template() ) { 
    18         include($template); 
    19         return; 
    20     } else if ( is_search() && $template = get_search_template() ) { 
    21         include($template); 
    22         return; 
    23     } else if ( is_tax() && $template = get_taxonomy_template()) { 
    24         include($template); 
    25         return; 
    26     } else if ( is_home() && $template = get_home_template() ) { 
    27         include($template); 
    28         return; 
    29     } else if ( is_attachment() && $template = get_attachment_template() ) { 
     8 
     9// Process feeds and trackbacks even if not using themes. 
     10if ( is_robots() ) : 
     11    do_action('do_robots'); 
     12    return; 
     13elseif ( is_feed() ) : 
     14    do_feed(); 
     15    return; 
     16elseif ( is_trackback() ) : 
     17    include( ABSPATH . 'wp-trackback.php' );     
     18    return; 
     19endif; 
     20 
     21if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) : 
     22    $template = false; 
     23    if     ( is_404()            && $template = get_404_template()            ) : 
     24    elseif ( is_search()         && $template = get_search_template()         ) : 
     25    elseif ( is_tax()            && $template = get_taxonomy_template()       ) : 
     26    elseif ( is_home()           && $template = get_home_template()           ) : 
     27    elseif ( is_attachment()     && $template = get_attachment_template()     ) : 
    3028        remove_filter('the_content', 'prepend_attachment'); 
    31         include($template); 
    32         return; 
    33     } else if ( is_single() && $template = get_single_template() ) { 
    34         include($template); 
    35         return; 
    36     } else if ( is_page() && $template = get_page_template() ) { 
    37         include($template); 
    38         return; 
    39     } else if ( is_category() && $template = get_category_template()) { 
    40         include($template); 
    41         return; 
    42     } else if ( is_tag() && $template = get_tag_template()) { 
    43         include($template); 
    44         return; 
    45     } else if ( is_author() && $template = get_author_template() ) { 
    46         include($template); 
    47         return; 
    48     } else if ( is_date() && $template = get_date_template() ) { 
    49         include($template); 
    50         return; 
    51     } else if ( is_archive() && $template = get_archive_template() ) { 
    52         include($template); 
    53         return; 
    54     } else if ( is_comments_popup() && $template = get_comments_popup_template() ) { 
    55         include($template); 
    56         return; 
    57     } else if ( is_paged() && $template = get_paged_template() ) { 
    58         include($template); 
    59         return; 
    60     } else if ( file_exists(TEMPLATEPATH . "/index.php") ) { 
    61         include(TEMPLATEPATH . "/index.php"); 
    62         return; 
    63     } 
    64 } else { 
    65     // Process feeds and trackbacks even if not using themes. 
    66     if ( is_robots() ) { 
    67         do_action('do_robots'); 
    68         return; 
    69     } else if ( is_feed() ) { 
    70         do_feed(); 
    71         return; 
    72     } else if ( is_trackback() ) { 
    73         include(ABSPATH . 'wp-trackback.php'); 
    74         return; 
    75     } 
    76 } 
     29    elseif ( is_single()         && $template = get_single_template()         ) : 
     30    elseif ( is_page()           && $template = get_page_template()           ) : 
     31    elseif ( is_category()       && $template = get_category_template()       ) : 
     32    elseif ( is_tag()            && $template = get_tag_template()            ) : 
     33    elseif ( is_author()         && $template = get_author_template()         ) : 
     34    elseif ( is_date()           && $template = get_date_template()           ) : 
     35    elseif ( is_archive()        && $template = get_archive_template()        ) : 
     36    elseif ( is_comments_popup() && $template = get_comments_popup_template() ) : 
     37    elseif ( is_paged()          && $template = get_paged_template()          ) : 
     38    elseif ( file_exists( TEMPLATEPATH . '/index.php' ) ) : 
     39        $template = TEMPLATEPATH . '/index.php'; 
     40    endif; 
     41    if ( $template = apply_filters( 'template_include', $template ) ) 
     42        include( $template ); 
     43    return; 
     44endif; 
    7745 
    7846?> 
Note: See TracChangeset for help on using the changeset viewer.