wp/wp-content/themes/twentysixteen/inc/back-compat.php
changeset 7 cf61fcea0001
equal deleted inserted replaced
6:490d5cc509ed 7:cf61fcea0001
       
     1 <?php
       
     2 /**
       
     3  * Twenty Sixteen back compat functionality
       
     4  *
       
     5  * Prevents Twenty Sixteen from running on WordPress versions prior to 4.4,
       
     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.4.
       
     8  *
       
     9  * @package WordPress
       
    10  * @subpackage Twenty_Sixteen
       
    11  * @since Twenty Sixteen 1.0
       
    12  */
       
    13 
       
    14 /**
       
    15  * Prevent switching to Twenty Sixteen on old versions of WordPress.
       
    16  *
       
    17  * Switches to the default theme.
       
    18  *
       
    19  * @since Twenty Sixteen 1.0
       
    20  */
       
    21 function twentysixteen_switch_theme() {
       
    22 	switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );
       
    23 
       
    24 	unset( $_GET['activated'] );
       
    25 
       
    26 	add_action( 'admin_notices', 'twentysixteen_upgrade_notice' );
       
    27 }
       
    28 add_action( 'after_switch_theme', 'twentysixteen_switch_theme' );
       
    29 
       
    30 /**
       
    31  * Adds a message for unsuccessful theme switch.
       
    32  *
       
    33  * Prints an update nag after an unsuccessful attempt to switch to
       
    34  * Twenty Sixteen on WordPress versions prior to 4.4.
       
    35  *
       
    36  * @since Twenty Sixteen 1.0
       
    37  *
       
    38  * @global string $wp_version WordPress version.
       
    39  */
       
    40 function twentysixteen_upgrade_notice() {
       
    41 	$message = sprintf( __( 'Twenty Sixteen requires at least WordPress version 4.4. You are running version %s. Please upgrade and try again.', 'twentysixteen' ), $GLOBALS['wp_version'] );
       
    42 	printf( '<div class="error"><p>%s</p></div>', $message );
       
    43 }
       
    44 
       
    45 /**
       
    46  * Prevents the Customizer from being loaded on WordPress versions prior to 4.4.
       
    47  *
       
    48  * @since Twenty Sixteen 1.0
       
    49  *
       
    50  * @global string $wp_version WordPress version.
       
    51  */
       
    52 function twentysixteen_customize() {
       
    53 	wp_die( sprintf( __( 'Twenty Sixteen requires at least WordPress version 4.4. You are running version %s. Please upgrade and try again.', 'twentysixteen' ), $GLOBALS['wp_version'] ), '', array(
       
    54 		'back_link' => true,
       
    55 	) );
       
    56 }
       
    57 add_action( 'load-customize.php', 'twentysixteen_customize' );
       
    58 
       
    59 /**
       
    60  * Prevents the Theme Preview from being loaded on WordPress versions prior to 4.4.
       
    61  *
       
    62  * @since Twenty Sixteen 1.0
       
    63  *
       
    64  * @global string $wp_version WordPress version.
       
    65  */
       
    66 function twentysixteen_preview() {
       
    67 	if ( isset( $_GET['preview'] ) ) {
       
    68 		wp_die( sprintf( __( 'Twenty Sixteen requires at least WordPress version 4.4. You are running version %s. Please upgrade and try again.', 'twentysixteen' ), $GLOBALS['wp_version'] ) );
       
    69 	}
       
    70 }
       
    71 add_action( 'template_redirect', 'twentysixteen_preview' );