Changeset 2183

Show
Ignore:
Timestamp:
02/01/05 03:44:32 (4 years ago)
Author:
rboren
Message:

get_*_template() functions and filters.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-blog-header.php

    r2179 r2183  
    226226            include(ABSPATH . '/wp-trackback.php'); 
    227227            exit; 
    228         } else if ( is_404() && file_exists("$wp_template_dir/404.php") ) { 
    229             include("$wp_template_dir/404.php"); 
    230             exit; 
    231         } else if ( is_home() && file_exists("$wp_template_dir/index.php") ) { 
    232             include("$wp_template_dir/index.php"); 
    233             exit; 
    234         } else if ( is_single() && file_exists("$wp_template_dir/single.php") ) { 
    235             include("$wp_template_dir/single.php"); 
    236             exit; 
    237         } else if ( is_page() && file_exists(get_page_template()) ) { 
     228        } else if ( is_404() && get_404_template() ) { 
     229            include(get_404_template()); 
     230            exit; 
     231        } else if ( is_home() && get_home_template() ) { 
     232            include(get_home_template()); 
     233            exit; 
     234        } else if ( is_single() && get_single_template() ) { 
     235            include(get_single_template()); 
     236            exit; 
     237        } else if ( is_page() && get_page_template() ) { 
    238238            include(get_page_template()); 
    239239            exit; 
    240         } else if ( is_category() && file_exists("$wp_template_dir/category-" . get_query_var('cat') . '.php') ) { 
    241             include("$wp_template_dir/category-" . get_query_var('cat') . '.php'); 
     240        } else if ( is_category() && get_category_template()) { 
     241            include(get_category_template()); 
    242242            exit;        
    243         } else if ( is_category() && file_exists("$wp_template_dir/category.php") ) { 
    244             include("$wp_template_dir/category.php"); 
    245             exit; 
    246         } else if ( is_author() && file_exists("$wp_template_dir/author.php") ) { 
    247             include("$wp_template_dir/author.php"); 
    248             exit; 
    249         } else if ( is_date() && file_exists("$wp_template_dir/date.php") ) { 
    250             include("$wp_template_dir/date.php"); 
    251             exit; 
    252         } else if ( is_archive() && file_exists("$wp_template_dir/archive.php") ) { 
    253             include("$wp_template_dir/archive.php"); 
    254             exit; 
    255         } else if ( is_search() && file_exists("$wp_template_dir/search.php") ) { 
    256             include("$wp_template_dir/search.php"); 
    257             exit; 
    258         } else if ( is_paged() && file_exists("$wp_template_dir/paged.php") ) { 
    259             include("$wp_template_dir/paged.php"); 
    260             exit; 
    261         } else if ( file_exists("$wp_template_dir/index.php") ) { 
    262             include("$wp_template_dir/index.php"); 
     243        } else if ( is_author() && get_author_template() ) { 
     244            include(get_author_template()); 
     245            exit; 
     246        } else if ( is_date() && get_date_template() ) { 
     247            include(get_date_template()); 
     248            exit; 
     249        } else if ( is_archive() && get_archive_template() ) { 
     250            include(get_archive_template()); 
     251            exit; 
     252        } else if ( is_search() && get_search_template() ) { 
     253            include(get_search_template()); 
     254            exit; 
     255        } else if ( is_paged() && get_paged_template() ) { 
     256            include(get_paged_template()); 
     257            exit; 
     258        } else if ( file_exists(TEMPLATEPATH . "/index.php") ) { 
     259            include(TEMPLATEPATH . "/index.php"); 
    263260            exit; 
    264261        } 
  • trunk/wp-includes/functions.php

    r2175 r2183  
    14531453} 
    14541454 
     1455function get_query_template($type) { 
     1456    $template = ''; 
     1457    if ( file_exists(TEMPLATEPATH . "/{$type}.php") ) 
     1458        $template = TEMPLATEPATH . "/{$type}.php"; 
     1459 
     1460    return apply_filters("{$type}_template", $template); 
     1461} 
     1462 
     1463function get_404_template() { 
     1464    return get_query_template('404'); 
     1465} 
     1466 
     1467function get_archive_template() { 
     1468    return get_query_template('archive'); 
     1469} 
     1470 
     1471function get_author_template() { 
     1472    return get_query_template('author'); 
     1473} 
     1474 
     1475function get_category_template() { 
     1476    $template = ''; 
     1477    if ( file_exists(TEMPLATEPATH . "/category-" . get_query_var('cat') . '.php') ) 
     1478        $template = TEMPLATEPATH . "/category-" . get_query_var('cat') . '.php'; 
     1479    else if ( file_exists(TEMPLATEPATH . "/category.php") ) 
     1480        $template = TEMPLATEPATH . "/category.php"; 
     1481 
     1482    return apply_filters('category_template', $template); 
     1483} 
     1484 
     1485function get_date_template() { 
     1486    return get_query_template('date'); 
     1487} 
     1488 
     1489function get_home_template() { 
     1490    $template = ''; 
     1491    if ( file_exists(TEMPLATEPATH . "/index.php") ) 
     1492        $template = TEMPLATEPATH . "/index.php"; 
     1493 
     1494    return apply_filters('home_template', $template); 
     1495} 
     1496 
    14551497function get_page_template() { 
    14561498    global $wp_query; 
    14571499 
    14581500    $id = $wp_query->post->ID;   
    1459     $template_dir = get_template_directory(); 
    1460     $default = "$template_dir/page.php"; 
    1461  
    14621501    $template = get_post_meta($id, '_wp_page_template', true); 
    14631502 
    1464     if (empty($template) || ($template == 'default')) { 
    1465         return $default; 
    1466     } 
    1467  
    1468     if (file_exists("$template_dir/$template")) { 
    1469         return "$template_dir/$template"; 
    1470     } 
    1471  
    1472     return $default; 
     1503    if ( 'default' == $template ) 
     1504        $template = ''; 
     1505 
     1506    if ( ! empty($template) && file_exists(TEMPLATEPATH . "/$template") ) 
     1507        $template = TEMPLATEPATH . "/$template"; 
     1508    else if ( file_exists(TEMPLATEPATH .  "/page.php") ) 
     1509        $template = TEMPLATEPATH .  "/page.php"; 
     1510    else 
     1511        $template = ''; 
     1512 
     1513    return apply_filters('page_template', $template); 
     1514
     1515 
     1516function get_paged_template() { 
     1517    return get_query_template('paged'); 
     1518
     1519 
     1520function get_search_template() { 
     1521    return get_query_template('search'); 
     1522
     1523 
     1524function get_single_template() { 
     1525    return get_query_template('single'); 
    14731526} 
    14741527