public function start_previewing_theme()
{
// Bail if we're already previewing.
if ($this->is_preview()) {
return;
}
$this->previewing = true;
if (!$this->is_theme_active()) {
add_filter('template', array($this, 'get_template'));
add_filter('stylesheet', array($this, 'get_stylesheet'));
add_filter('pre_option_current_theme', array($this, 'current_theme'));
// @link: https://core.trac.wordpress.org/ticket/20027
add_filter('pre_option_stylesheet', array($this, 'get_stylesheet'));
add_filter('pre_option_template', array($this, 'get_template'));
// Handle custom theme roots.
add_filter('pre_option_stylesheet_root', array($this, 'get_stylesheet_root'));
add_filter('pre_option_template_root', array($this, 'get_template_root'));
}
/**
* Fires once the Customizer theme preview has started.
*
* @since 3.4.0
*
* @param WP_Customize_Manager $this WP_Customize_Manager instance.
*/
do_action('start_previewing_theme', $this);
}