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:
parent
e3a3ba4caa
commit
903b9af181
@ -690,16 +690,14 @@ function switch_theme( $stylesheet ) {
|
|||||||
|
|
||||||
$nav_menu_locations = get_theme_mod( 'nav_menu_locations' );
|
$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 ) {
|
if ( func_num_args() > 1 ) {
|
||||||
$template = $stylesheet;
|
|
||||||
$stylesheet = func_get_arg( 1 );
|
$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( 'template', $template );
|
||||||
update_option( 'stylesheet', $stylesheet );
|
update_option( 'stylesheet', $stylesheet );
|
||||||
|
|
||||||
|
@ -85,6 +85,11 @@ class Tests_Theme extends WP_UnitTestCase {
|
|||||||
$themes = get_themes();
|
$themes = get_themes();
|
||||||
// Generic tests that should hold true for any theme
|
// Generic tests that should hold true for any theme
|
||||||
foreach ( $themes as $k => $theme ) {
|
foreach ( $themes as $k => $theme ) {
|
||||||
|
// Don't run these checks for custom themes.
|
||||||
|
if ( empty( $theme['Author'] ) || false === strpos( $theme['Author'], 'WordPress' ) ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$this->assertEquals( $theme['Name'], $k );
|
$this->assertEquals( $theme['Name'], $k );
|
||||||
$this->assertNotEmpty( $theme['Title'] );
|
$this->assertNotEmpty( $theme['Title'] );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user