wp/wp-content/themes/twentyfifteen/inc/back-compat.php
changeset 5 5e2f62d02dcd
equal deleted inserted replaced
4:346c88efed21 5:5e2f62d02dcd
       
     1 <?php
       
     2 /**
       
     3  * Twenty Fifteen back compat functionality
       
     4  *
       
     5  * Prevents Twenty Fifteen from running on WordPress versions prior to 4.1,
       
     6  * since this theme is not meant to be backward compatible beyond that and
       
     7  * relies on many newer functions and markup changes introduced in 4.1.
       
     8  *
       
     9  * @package WordPress
       
    10  * @subpackage Twenty_Fifteen
       
    11  * @since Twenty Fifteen 1.0
       
    12  */
       
    13 
       
    14 /**
       
    15  * Prevent switching to Twenty Fifteen on old versions of WordPress.
       
    16  *
       
    17  * Switches to the default theme.
       
    18  *
       
    19  * @since Twenty Fifteen 1.0
       
    20  */
       
    21 function twentyfifteen_switch_theme() {
       
    22 	switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );
       
    23 	unset( $_GET['activated'] );
       
    24 	add_action( 'admin_notices', 'twentyfifteen_upgrade_notice' );
       
    25 }
       
    26 add_action( 'after_switch_theme', 'twentyfifteen_switch_theme' );
       
    27 
       
    28 /**
       
    29  * Add message for unsuccessful theme switch.
       
    30  *
       
    31  * Prints an update nag after an unsuccessful attempt to switch to
       
    32  * Twenty Fifteen on WordPress versions prior to 4.1.
       
    33  *
       
    34  * @since Twenty Fifteen 1.0
       
    35  */
       
    36 function twentyfifteen_upgrade_notice() {
       
    37 	$message = sprintf( __( 'Twenty Fifteen requires at least WordPress version 4.1. You are running version %s. Please upgrade and try again.', 'twentyfifteen' ), $GLOBALS['wp_version'] );
       
    38 	printf( '<div class="error"><p>%s</p></div>', $message );
       
    39 }
       
    40 
       
    41 /**
       
    42  * Prevent the Customizer from being loaded on WordPress versions prior to 4.1.
       
    43  *
       
    44  * @since Twenty Fifteen 1.0
       
    45  */
       
    46 function twentyfifteen_customize() {
       
    47 	wp_die( sprintf( __( 'Twenty Fifteen requires at least WordPress version 4.1. You are running version %s. Please upgrade and try again.', 'twentyfifteen' ), $GLOBALS['wp_version'] ), '', array(
       
    48 		'back_link' => true,
       
    49 	) );
       
    50 }
       
    51 add_action( 'load-customize.php', 'twentyfifteen_customize' );
       
    52 
       
    53 /**
       
    54  * Prevent the Theme Preview from being loaded on WordPress versions prior to 4.1.
       
    55  *
       
    56  * @since Twenty Fifteen 1.0
       
    57  */
       
    58 function twentyfifteen_preview() {
       
    59 	if ( isset( $_GET['preview'] ) ) {
       
    60 		wp_die( sprintf( __( 'Twenty Fifteen requires at least WordPress version 4.1. You are running version %s. Please upgrade and try again.', 'twentyfifteen' ), $GLOBALS['wp_version'] ) );
       
    61 	}
       
    62 }
       
    63 add_action( 'template_redirect', 'twentyfifteen_preview' );