WordPress.org

Make WordPress Core

Changeset 16424


Ignore:
Timestamp:
11/17/10 16:11:44 (7 years ago)
Author:
ryan
Message:

Register the default theme dir in wp-settings.php so that it is registered even when get_themes() doesn't run. Fix counting of theme dirs. Add option to get_raw_theme_root() to disregard the current theme root cache. see #14911

Location:
trunk
Files:
2 edited

Legend:

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

    r16340 r16424  
    267267    if ( isset($wp_themes) ) 
    268268        return $wp_themes; 
    269  
    270     /* Register the default root as a theme directory */ 
    271     register_theme_directory( get_theme_root() ); 
    272269 
    273270    if ( !$theme_files = search_theme_directories() ) 
     
    476473    global $wp_theme_directories; 
    477474 
    478     if ( count($wp_theme_directories <= 1) ) 
     475    if ( count($wp_theme_directories) <= 1 ) 
    479476        return '/themes'; 
    480477 
     
    704701 * @return string Theme root 
    705702 */ 
    706 function get_raw_theme_root( $stylesheet_or_template ) { 
     703function get_raw_theme_root( $stylesheet_or_template, $no_cache = false ) { 
    707704    global $wp_theme_directories; 
    708705 
    709     if ( count($wp_theme_directories <= 1) ) 
     706    if ( count($wp_theme_directories) <= 1 ) 
    710707        return '/themes'; 
    711708 
     
    713710 
    714711    // If requesting the root for the current theme, consult options to avoid calling get_theme_roots() 
    715     if ( get_option('stylesheet') == $stylesheet_or_template ) 
    716         $theme_root = get_option('stylesheet_root'); 
    717     elseif ( get_option('template') == $stylesheet_or_template ) 
    718         $theme_root = get_option('template_root'); 
     712    if ( !$no_cache ) { 
     713        if ( get_option('stylesheet') == $stylesheet_or_template ) 
     714            $theme_root = get_option('stylesheet_root'); 
     715        elseif ( get_option('template') == $stylesheet_or_template ) 
     716            $theme_root = get_option('template_root'); 
     717    } 
    719718 
    720719    if ( empty($theme_root) ) { 
     
    12491248    update_option('stylesheet', $stylesheet); 
    12501249    if ( count($wp_theme_directories) > 1 ) { 
    1251         update_option('template_root', get_raw_theme_root($template)); 
    1252         update_option('stylesheet_root', get_raw_theme_root($stylesheet)); 
     1250        update_option('template_root', get_raw_theme_root($template, true)); 
     1251        update_option('stylesheet_root', get_raw_theme_root($stylesheet, true)); 
    12531252    } 
    12541253    delete_option('current_theme'); 
  • trunk/wp-settings.php

    r16353 r16424  
    175175create_initial_post_types(); 
    176176 
     177// Register the default theme directory root 
     178register_theme_directory( get_theme_root() ); 
     179 
    177180// Load active plugins. 
    178181foreach ( wp_get_active_and_valid_plugins() as $plugin ) 
Note: See TracChangeset for help on using the changeset viewer.