WordPress/wp-content/themes/twentyseventeen/inc/back-compat.php
Gary Pendergast aaf99e6913 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.


Built from https://develop.svn.wordpress.org/trunk@42343


git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-11-30 23:11:00 +00:00

72 lines
2.3 KiB
PHP

<?php
/**
* Twenty Seventeen back compat functionality
*
* Prevents Twenty Seventeen from running on WordPress versions prior to 4.7,
* since this theme is not meant to be backward compatible beyond that and
* relies on many newer functions and markup changes introduced in 4.7.
*
* @package WordPress
* @subpackage Twenty_Seventeen
* @since Twenty Seventeen 1.0
*/
/**
* Prevent switching to Twenty Seventeen on old versions of WordPress.
*
* Switches to the default theme.
*
* @since Twenty Seventeen 1.0
*/
function twentyseventeen_switch_theme() {
switch_theme( WP_DEFAULT_THEME );
unset( $_GET['activated'] );
add_action( 'admin_notices', 'twentyseventeen_upgrade_notice' );
}
add_action( 'after_switch_theme', 'twentyseventeen_switch_theme' );
/**
* Adds a message for unsuccessful theme switch.
*
* Prints an update nag after an unsuccessful attempt to switch to
* Twenty Seventeen on WordPress versions prior to 4.7.
*
* @since Twenty Seventeen 1.0
*
* @global string $wp_version WordPress version.
*/
function twentyseventeen_upgrade_notice() {
$message = sprintf( __( 'Twenty Seventeen requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'twentyseventeen' ), $GLOBALS['wp_version'] );
printf( '<div class="error"><p>%s</p></div>', $message );
}
/**
* Prevents the Customizer from being loaded on WordPress versions prior to 4.7.
*
* @since Twenty Seventeen 1.0
*
* @global string $wp_version WordPress version.
*/
function twentyseventeen_customize() {
wp_die(
sprintf( __( 'Twenty Seventeen requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'twentyseventeen' ), $GLOBALS['wp_version'] ), '', array(
'back_link' => true,
)
);
}
add_action( 'load-customize.php', 'twentyseventeen_customize' );
/**
* Prevents the Theme Preview from being loaded on WordPress versions prior to 4.7.
*
* @since Twenty Seventeen 1.0
*
* @global string $wp_version WordPress version.
*/
function twentyseventeen_preview() {
if ( isset( $_GET['preview'] ) ) {
wp_die( sprintf( __( 'Twenty Seventeen requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'twentyseventeen' ), $GLOBALS['wp_version'] ) );
}
}
add_action( 'template_redirect', 'twentyseventeen_preview' );