Customizer Responsive Server-Side Components Device Preview
Extend device preview in customizer with previewing server-side components, ensuring the previewed device's user agent is set when the site refreshes
Contributors: xwp, westonruter
Tags: customizer, customize, responsive, rwd, adaptive, ress, preview
Requires at least: 4.7
Tested up to: 4.9
Stable tag: 0.1.1
License: GPLv2 or later
Requires PHP: 5.3
Read full writeup: Previewing Themes with Adaptive Designs in the Customizer.
This plugin extends the responsive device preview functionality in the customizer which was added in 4.5 (see #31195). In core when you change the previewed device it merely changes the dimensions of the preview, allowing you to simulate how the theme will appear on tablet or mobile screens. What it does not do, however, is cause the preview to reload with the
User-Agent overridden for the current device being previewed. For themes that implement a responsive design this core behavior is just fine since changing the dimensions of the iframe will cause the appropriate media queries to apply. However, if you have an adaptive design for your theme you won't be able to see any server-side components that it may display when viewing a different device. For example, on mobile devices a theme may want to skip outputting the sidebar altogether to save on bandwidth.
This plugin will ensure that the preview is refreshed when the previewed device is changed in addition to changing the preview window size. It will pass a
customize_previewed_device query parameter on the URL being previewed, and this parameter will be either
mobile. The plugin will override the
$_SERVER['HTTP_USER_AGENT'] to be a user agent representative of the supplied device type so that calls to
Jetpack_User_Agent_Info::is_tablet() will all return the expected values based on the current previewed device.
- Update minimum required version of WordPress to 4.7.
- Explicitly require PHP 5.3.
- Clean up JS, upgrade dev-lib.