WordPress.org

Make WordPress Core

Ticket #18302: 18302.theme_url.3.diff

File 18302.theme_url.3.diff, 1.7 KB (added by georgestephanis, 6 years ago)
  • wp-includes/link-template.php

     
    20612061}
    20622062
    20632063/**
     2064 * Retrieve the url of the highest priority template file that exists.
     2065 *
     2066 * Searches in the stylesheet directory before the template directory so themes
     2067 * which inherit from a parent theme can just overload one file.
     2068 *
     2069 * @since 3.5
     2070 *
     2071 * @param string|array $template_names Template file(s) to search for, in order.
     2072 * @return string The URI of the file if one is located.
     2073 */
     2074function theme_url( $template_names, $else = null ) {
     2075        $url = $else;
     2076        $stylesheet_directory = trailingslashit( get_stylesheet_directory() );
     2077        $template_directory = trailingslashit( get_template_directory() );
     2078        $is_child_theme = ( $stylesheet_directory !== $template_directory );
     2079
     2080        foreach ( (array) $template_names as $template_name ) {
     2081                if ( ! $template_name = ltrim( $template_name, '/' ) )
     2082                        continue;
     2083                if ( $is_child_theme && file_exists( $stylesheet_directory . $template_name ) ) {
     2084                        $url = trailingslashit( get_stylesheet_directory_uri() ) . $template_name;
     2085                        break;
     2086                } elseif ( file_exists( $template_directory . $template_name ) ) {
     2087                        $url = trailingslashit( get_template_directory_uri() ) . $template_name;
     2088                        break;
     2089                }
     2090        }
     2091
     2092        if( empty( $url ) && ! empty( $template_name ) )
     2093                $url = trailingslashit( get_template_directory_uri() ) . $template_name;
     2094
     2095        return apply_filters( 'theme_url', $url, $template_names, $else );
     2096}
     2097
     2098/**
    20642099 * Retrieve the site url for the current network.
    20652100 *
    20662101 * Returns the site url with the appropriate protocol, 'https' if