preview_theme

The timeline below displays how wordpress function preview_theme has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 4.6

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 * @deprecated 4.3.0
 */
function preview_theme()
{
    _deprecated_function(__FUNCTION__, '4.3.0');
}

WordPress Version: 4.3

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 * @deprecated 4.3.0
 */
function preview_theme()
{
    _deprecated_function(__FUNCTION__, '4.3');
}

WordPress Version: .30

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 2.3

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .20

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 2.2

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .10

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 4.2

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: 1.7

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 1.5

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .40

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 1.4

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .30

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 1.3

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .20

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 1.2

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .10

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 4.1

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: 0.7

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 0.4

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .30

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 0.3

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .20

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 0.2

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .10

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 4.0

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: 9.8

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 9.2

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .10

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 8.4

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .30

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 8.3

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .20

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 8.2

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .10

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 7.5

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .40

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 7.4

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .30

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 7.3

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .20

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 7.2

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}

WordPress Version: .10

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
}

WordPress Version: 3.7

/**
 * Start preview theme output buffer.
 *
 * Will only perform task if the user has permissions and template and preview
 * query variables exist.
 *
 * @since 2.6.0
 */
function preview_theme()
{
    if (!(isset($_GET['template']) && isset($_GET['preview']))) {
        return;
    }
    if (!current_user_can('switch_themes')) {
        return;
    }
    // Admin Thickbox requests
    if (isset($_GET['preview_iframe'])) {
        show_admin_bar(false);
    }
    $_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
    if (validate_file($_GET['template'])) {
        return;
    }
    add_filter('template', '_preview_theme_template_filter');
    if (isset($_GET['stylesheet'])) {
        $_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
        if (validate_file($_GET['stylesheet'])) {
            return;
        }
        add_filter('stylesheet', '_preview_theme_stylesheet_filter');
    }
    // Prevent theme mods to current theme being used on theme being previewed
    add_filter('pre_option_theme_mods_' . get_option('stylesheet'), '__return_empty_array');
    ob_start('preview_theme_ob_filter');
}