WordPress.org

Make WordPress Core

Changeset 20015


Ignore:
Timestamp:
02/28/2012 04:22:26 PM (8 years ago)
Author:
nacin
Message:

Revert [20001]. Theme roots that are passed around, stored, and cached can be valid as absolute paths or paths relative to wp-content. We'll have to patch this elsewhere. see #17597.

File:
1 edited

Legend:

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

    r20002 r20015  
    476476
    477477    if ( count($wp_theme_directories) <= 1 )
    478         return get_theme_root();
     478        return '/themes';
    479479
    480480    $theme_roots = get_site_transient( 'theme_roots' );
     
    548548 * @return bool
    549549 */
    550 function register_theme_directory( $directory ) {
     550function register_theme_directory( $directory) {
    551551    global $wp_theme_directories;
    552552
    553     if ( ! file_exists( $directory ) ) {
    554         // Try prepending as the theme directory could be relative to the content directory
    555         $directory = WP_CONTENT_DIR . '/' . $directory;
    556         // If this directory does not exist, return and do not register
    557         if ( ! file_exists( $directory ) )
    558             return false;
    559     }
    560 
    561     $wp_theme_directories[] = $directory;
     553    /* If this folder does not exist, return and do not register */
     554    if ( !file_exists( $directory ) )
     555            /* Try prepending as the theme directory could be relative to the content directory */
     556        $registered_directory = WP_CONTENT_DIR . '/' . $directory;
     557    else
     558        $registered_directory = $directory;
     559
     560    /* If this folder does not exist, return and do not register */
     561    if ( !file_exists( $registered_directory ) )
     562        return false;
     563
     564    $wp_theme_directories[] = $registered_directory;
    562565
    563566    return true;
     
    658661 */
    659662function get_theme_root( $stylesheet_or_template = false ) {
    660     if ( $stylesheet_or_template && $theme_root = get_raw_theme_root( $stylesheet_or_template ) )
    661         $theme_root = $theme_root;
    662     else
     663    if ( $stylesheet_or_template ) {
     664        if ( $theme_root = get_raw_theme_root($stylesheet_or_template) )
     665            $theme_root = WP_CONTENT_DIR . $theme_root;
     666        else
     667            $theme_root = WP_CONTENT_DIR . '/themes';
     668    } else {
    663669        $theme_root = WP_CONTENT_DIR . '/themes';
     670    }
    664671
    665672    return apply_filters( 'theme_root', $theme_root );
     
    679686    if ( $stylesheet_or_template ) {
    680687        if ( $theme_root = get_raw_theme_root($stylesheet_or_template) )
    681             $theme_root_uri = content_url( str_replace( WP_CONTENT_DIR, '', $theme_root ) );
     688            $theme_root_uri = content_url( $theme_root );
    682689        else
    683690            $theme_root_uri = content_url( 'themes' );
     
    690697
    691698/**
    692  * Get the raw theme root with no filters applied.
     699 * Get the raw theme root relative to the content directory with no filters applied.
    693700 *
    694701 * @since 3.1.0
    695  *
    696  * Before 3.4.0, this incorrectly returned a path relative to the content directory ("/themes") when
    697  * only one theme directory was registered. Absolute paths are now always returned.
    698702 *
    699703 * @param string $stylesheet_or_template The stylesheet or template name of the theme
     
    704708
    705709    if ( count($wp_theme_directories) <= 1 )
    706         return WP_CONTENT_DIR . '/themes';
     710        return '/themes';
    707711
    708712    $theme_root = false;
Note: See TracChangeset for help on using the changeset viewer.