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
This commit is contained in:
Lance Willett 2013-06-06 00:22:09 +00:00
parent 173c3da21f
commit 38c19a5fde

View File

@ -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( ' <a href="javascript:history.go(-1);">%s</a>', __( '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' );