Changeset 56635 for trunk/src/wp-includes/theme.php
- Timestamp:
- 09/20/2023 05:25:26 PM (13 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/theme.php
r56414 r56635 158 158 */ 159 159 function is_child_theme() { 160 return ( TEMPLATEPATH !== STYLESHEETPATH);160 return get_template_directory() !== get_stylesheet_directory(); 161 161 } 162 162 … … 188 188 * 189 189 * @since 1.5.0 190 * @since 6.4.0 Memoizes filter execution so that it only runs once for the current theme. 191 * 192 * @global string $wp_stylesheet_path Current theme stylesheet directory path. 190 193 * 191 194 * @return string Path to active theme's stylesheet directory. 192 195 */ 193 196 function get_stylesheet_directory() { 194 $stylesheet = get_stylesheet(); 195 $theme_root = get_theme_root( $stylesheet ); 196 $stylesheet_dir = "$theme_root/$stylesheet"; 197 198 /** 199 * Filters the stylesheet directory path for the active theme. 200 * 201 * @since 1.5.0 202 * 203 * @param string $stylesheet_dir Absolute path to the active theme. 204 * @param string $stylesheet Directory name of the active theme. 205 * @param string $theme_root Absolute path to themes directory. 206 */ 207 return apply_filters( 'stylesheet_directory', $stylesheet_dir, $stylesheet, $theme_root ); 197 global $wp_stylesheet_path; 198 199 if ( null === $wp_stylesheet_path ) { 200 $stylesheet = get_stylesheet(); 201 $theme_root = get_theme_root( $stylesheet ); 202 $stylesheet_dir = "$theme_root/$stylesheet"; 203 204 /** 205 * Filters the stylesheet directory path for the active theme. 206 * 207 * @since 1.5.0 208 * 209 * @param string $stylesheet_dir Absolute path to the active theme. 210 * @param string $stylesheet Directory name of the active theme. 211 * @param string $theme_root Absolute path to themes directory. 212 */ 213 $stylesheet_dir = apply_filters( 'stylesheet_directory', $stylesheet_dir, $stylesheet, $theme_root ); 214 215 // If there are filter callbacks, force the logic to execute on every call. 216 if ( has_filter( 'stylesheet' ) || has_filter( 'theme_root' ) || has_filter( 'stylesheet_directory' ) ) { 217 return $stylesheet_dir; 218 } 219 220 $wp_stylesheet_path = $stylesheet_dir; 221 } 222 223 return $wp_stylesheet_path; 208 224 } 209 225 … … 322 338 * 323 339 * @since 1.5.0 340 * @since 6.4.0 Memoizes filter execution so that it only runs once for the current theme. 341 * 342 * @global string $wp_template_path Current theme template directory path. 324 343 * 325 344 * @return string Path to active theme's template directory. 326 345 */ 327 346 function get_template_directory() { 328 $template = get_template(); 329 $theme_root = get_theme_root( $template ); 330 $template_dir = "$theme_root/$template"; 331 332 /** 333 * Filters the active theme directory path. 334 * 335 * @since 1.5.0 336 * 337 * @param string $template_dir The path of the active theme directory. 338 * @param string $template Directory name of the active theme. 339 * @param string $theme_root Absolute path to the themes directory. 340 */ 341 return apply_filters( 'template_directory', $template_dir, $template, $theme_root ); 347 global $wp_template_path; 348 349 if ( null === $wp_template_path ) { 350 $template = get_template(); 351 $theme_root = get_theme_root( $template ); 352 $template_dir = "$theme_root/$template"; 353 354 /** 355 * Filters the active theme directory path. 356 * 357 * @since 1.5.0 358 * 359 * @param string $template_dir The path of the active theme directory. 360 * @param string $template Directory name of the active theme. 361 * @param string $theme_root Absolute path to the themes directory. 362 */ 363 $template_dir = apply_filters( 'template_directory', $template_dir, $template, $theme_root ); 364 365 // If there are filter callbacks, force the logic to execute on every call. 366 if ( has_filter( 'template' ) || has_filter( 'theme_root' ) || has_filter( 'template_directory' ) ) { 367 return $template_dir; 368 } 369 370 $wp_template_path = $template_dir; 371 } 372 373 return $wp_template_path; 342 374 } 343 375 … … 745 777 * @global array $sidebars_widgets 746 778 * @global array $wp_registered_sidebars 779 * @global string $wp_stylesheet_path 780 * @global string $wp_template_path 747 781 * 748 782 * @param string $stylesheet Stylesheet name. 749 783 */ 750 784 function switch_theme( $stylesheet ) { 751 global $wp_theme_directories, $wp_customize, $sidebars_widgets, $wp_registered_sidebars ;785 global $wp_theme_directories, $wp_customize, $sidebars_widgets, $wp_registered_sidebars, $wp_stylesheet_path, $wp_template_path; 752 786 753 787 $requirements = validate_theme_requirements( $stylesheet ); … … 832 866 833 867 update_option( 'theme_switched', $old_theme->get_stylesheet() ); 868 869 /* 870 * Reset globals to force refresh the next time these directories are 871 * accessed via `get_stylesheet_directory()` / `get_template_directory()`. 872 */ 873 $wp_stylesheet_path = null; 874 $wp_template_path = null; 834 875 835 876 /**
Note: See TracChangeset
for help on using the changeset viewer.