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' );
|
||||
|
||||
$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 );
|
||||
|
||||
|
@ -85,6 +85,11 @@ class Tests_Theme extends WP_UnitTestCase {
|
||||
$themes = get_themes();
|
||||
// Generic tests that should hold true for any 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->assertNotEmpty( $theme['Title'] );
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user