WordPress.org

Make WordPress Core

Ticket #14838: 14838.patch

File 14838.patch, 1.4 KB (added by hakre, 8 years ago)
  • wp-includes/theme.php

     
    469469 * @return array Theme roots
    470470 */
    471471function get_theme_roots() {
    472         $theme_roots = get_site_transient( 'theme_roots' );
    473         if ( false === $theme_roots ) {
    474                 get_themes();
    475                 $theme_roots = get_site_transient( 'theme_roots' ); // this is set in get_theme()
    476         }
     472        while ( false === ( $theme_roots = get_site_transient( 'theme_roots' ) ) )
     473                get_themes(); // update transient
     474
    477475        return $theme_roots;
    478476}
    479477
     
    651649 * @return string Theme path.
    652650 */
    653651function get_theme_root( $stylesheet_or_template = false ) {
    654         if ($stylesheet_or_template) {
    655                 $theme_roots = get_theme_roots();
    656 
    657                 if ( ! empty( $theme_roots[$stylesheet_or_template] ) )
    658                         $theme_root = WP_CONTENT_DIR . $theme_roots[$stylesheet_or_template];
    659                 else
    660                         $theme_root = WP_CONTENT_DIR . '/themes';
    661         } else {
    662                 $theme_root = WP_CONTENT_DIR . '/themes';
    663         }
    664 
     652       
     653        $stylesheet_or_template
     654        && ( $theme_roots = get_theme_roots() )
     655        && empty ( $theme_roots[$stylesheet_or_template] )
     656        || $theme_root = WP_CONTENT_DIR . $theme_roots[$stylesheet_or_template];
     657       
     658        empty ( $theme_root ) && $theme_root = WP_CONTENT_DIR . '/themes';
     659       
    665660        return apply_filters( 'theme_root', $theme_root );
    666661}
    667662