From 38c19a5fde31671e5bfb7785e359bfe6e29871e3 Mon Sep 17 00:00:00 2001 From: Lance Willett Date: Thu, 6 Jun 2013 00:22:09 +0000 Subject: [PATCH] Twenty Thirteen: improve backward compatibility escape hatch for pre-3.6 versions: * Switch to the built-in method of providing a back link in `wp_die()` for the Customizer * Use WP_DEFAULT_THEME for both arguments during theme switching to simplify the logic * Prevent the 3.3 and earlier theme preview action gracefully Props obenland for patches, fixes #24441. git-svn-id: http://core.svn.wordpress.org/trunk@24411 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../themes/twentythirteen/inc/back-compat.php | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/wp-content/themes/twentythirteen/inc/back-compat.php b/wp-content/themes/twentythirteen/inc/back-compat.php index a10691ecfd..8638adfa49 100644 --- a/wp-content/themes/twentythirteen/inc/back-compat.php +++ b/wp-content/themes/twentythirteen/inc/back-compat.php @@ -13,24 +13,18 @@ /** * Prevent switching to Twenty Thirteen on old versions of WordPress. Switches - * to the previously activated theme or the default theme. + * to the default theme. * * @since Twenty Thirteen 1.0 * - * @param string $theme_name The theme name. - * @param WP_Theme $theme The theme object. * @return void */ -function twentythirteen_switch_theme( $theme_name, $theme ) { - if ( 'twentythirteen' != $theme->get_template() ) - switch_theme( $theme->get_template(), $theme->get_stylesheet() ); - elseif ( 'twentythirteen' != WP_DEFAULT_THEME ) - switch_theme( WP_DEFAULT_THEME ); - +function twentythirteen_switch_theme() { + switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME ); unset( $_GET['activated'] ); add_action( 'admin_notices', 'twentythirteen_upgrade_notice' ); } -add_action( 'after_switch_theme', 'twentythirteen_switch_theme', 10, 2 ); +add_action( 'after_switch_theme', 'twentythirteen_switch_theme' ); /** * Prints an update nag after an unsuccessful attempt to switch to @@ -53,6 +47,22 @@ function twentythirteen_upgrade_notice() { * @return void */ function twentythirteen_customize() { - wp_die( sprintf( __( 'Twenty Thirteen requires at least WordPress version 3.6. You are running version %s. Please upgrade and try again.', 'twentythirteen' ), $GLOBALS['wp_version'] ) . sprintf( ' %s', __( 'Go back.', 'twentythirteen' ) ) ); + wp_die( sprintf( __( 'Twenty Thirteen requires at least WordPress version 3.6. You are running version %s. Please upgrade and try again.', 'twentythirteen' ), $GLOBALS['wp_version'] ), '', array( + 'back_link' => true, + ) ); } add_action( 'load-customize.php', 'twentythirteen_customize' ); + +/** + * Prevents the Theme Preview from being loaded on WordPress versions prior to 3.4. + * + * @since Twenty Thirteen 1.0 + * + * @return void + */ +function twentythirteen_preview() { + if ( isset( $_GET['preview'] ) ) { + wp_die( sprintf( __( 'Twenty Thirteen requires at least WordPress version 3.6. You are running version %s. Please upgrade and try again.', 'twentythirteen' ), $GLOBALS['wp_version'] ) ); + } +} +add_action( 'template_redirect', 'twentythirteen_preview' ); \ No newline at end of file