wp_customize_support_script()

Prints a script to check whether or not the Customizer is supported, and apply either the no-customize-support or customize-support class to the body.

Description

This function MUST be called inside the body tag.

Ideally, call this function immediately after the body tag is opened. This prevents a flash of unstyled content.

It is also recommended that you add the "no-customize-support" class to the body tag by default.

Source

File: wp-includes/theme.php

function wp_customize_support_script() {
	$admin_origin = parse_url( admin_url() );
	$home_origin  = parse_url( home_url() );
	$cross_domain = ( strtolower( $admin_origin['host'] ) != strtolower( $home_origin['host'] ) );
	$type_attr    = current_theme_supports( 'html5', 'script' ) ? '' : ' type="text/javascript"';
	?>
	<script<?php echo $type_attr; ?>>
		(function() {
			var request, b = document.body, c = 'className', cs = 'customize-support', rcs = new RegExp('(^|\\s+)(no-)?'+cs+'(\\s+|$)');

	<?php	if ( $cross_domain ) : ?>
			request = (function(){ var xhr = new XMLHttpRequest(); return ('withCredentials' in xhr); })();
	<?php	else : ?>
			request = true;
	<?php	endif; ?>

			b[c] = b[c].replace( rcs, ' ' );
			// The customizer requires postMessage and CORS (if the site is cross domain).
			b[c] += ( window.postMessage && request ? ' ' : ' no-' ) + cs;
		}());
	</script>
	<?php
}

Changelog

Version Description
5.5.0 IE8 and older are no longer supported.
4.7.0 Support for IE8 and below is explicitly removed via conditional comments.
3.4.0 Introduced.

© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_customize_support_script