Make WordPress Core

Changeset 2183


Ignore:
Timestamp:
02/01/2005 03:44:32 AM (20 years ago)
Author:
rboren
Message:

get_*_template() functions and filters.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.