Themes: Get the correct theme when template and stylesheet were both passed as arguments.

Fixes a bug where `$new_theme` got set before the second argument was
appropriately handled, causing the `current_theme` option to later always be
updated to the parent theme's name.

Introduced in [21131].

Props obenland, wonderboymusic.
Fixes #32635.



git-svn-id: https://develop.svn.wordpress.org/trunk@33815 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Konstantin Obenland
2015-08-30 21:44:38 +00:00
parent e3a3ba4caa
commit 903b9af181
2 changed files with 9 additions and 6 deletions
+4 -6
View File
@@ -690,16 +690,14 @@ function switch_theme( $stylesheet ) {
$nav_menu_locations = get_theme_mod( 'nav_menu_locations' );
$old_theme = wp_get_theme();
$new_theme = wp_get_theme( $stylesheet );
if ( func_num_args() > 1 ) {
$template = $stylesheet;
$stylesheet = func_get_arg( 1 );
} else {
$template = $new_theme->get_template();
}
$old_theme = wp_get_theme();
$new_theme = wp_get_theme( $stylesheet );
$template = $new_theme->get_template();
update_option( 'template', $template );
update_option( 'stylesheet', $stylesheet );