WP_Customize_Manager::remove_frameless_preview_messenger_channel() WordPress Method
The WP_Customize_Manager::remove_frameless_preview_messenger_channel() method is used to remove a Customizer preview frame messenger channel.
WP_Customize_Manager::remove_frameless_preview_messenger_channel() #
Removes customize_messenger_channel query parameter from the preview window when it is not in an iframe.
Contents
Description
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.
Source
File: wp-includes/class-wp-customize-manager.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 }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
4.7.0 | Introduced. |