WordPress at a glance
function is not described

WP_Customize_Manager::remove_frameless_preview_messenger_channel() public WP 4.7.0

Remove customize_messenger_channel query parameter from the preview window when it is not in an iframe.

This ensures that the admin bar will be shown. It also ensures that link navigation will work as expected since the parent frame is not being sent the URL to navigate to.

{} It's a method of the class: WP_Customize_Manager{}

No Hooks.

Return

null. Nothing.

Usage

$WP_Customize_Manager = new WP_Customize_Manager();
$WP_Customize_Manager->remove_frameless_preview_messenger_channel();

Changelog

Since 4.7.0 Introduced.

Code of WP_Customize_Manager::remove_frameless_preview_messenger_channel() WP 5.7.2

<?php
public function remove_frameless_preview_messenger_channel() {
	if ( ! $this->messenger_channel ) {
		return;
	}
	?>
	<script>
	( function() {
		var urlParser, oldQueryParams, newQueryParams, i;
		if ( parent !== window ) {
			return;
		}
		urlParser = document.createElement( 'a' );
		urlParser.href = location.href;
		oldQueryParams = urlParser.search.substr( 1 ).split( /&/ );
		newQueryParams = [];
		for ( i = 0; i < oldQueryParams.length; i += 1 ) {
			if ( ! /^customize_messenger_channel=/.test( oldQueryParams[ i ] ) ) {
				newQueryParams.push( oldQueryParams[ i ] );
			}
		}
		urlParser.search = newQueryParams.join( '&' );
		if ( urlParser.search !== location.search ) {
			location.replace( urlParser.href );
		}
	} )();
	</script>
	<?php
}