Переключить тему с помощью кода в WordPress

Достаточно часто в процессе разработки темы WordPress, у меня возникает потребность посмотреть как будет выглядеть тема на реальном сайте. Для того чтобы не шокировать посетителей, нам необходимо чтобы WordPress автоматически переключал тему. Например, в то время как большинству посетителей сайта будет отображаться стандартная тема, WordPress будет отображать другую тему для администратора.

По умолчанию в WordPress нет возможности автоматически переключать темы. Но данный недостаток легко устраняется специальным плагином. Плагин поддерживает родительские и дочерние темы WordPress. По умолчанию плагин устанавливает разные темы для посетителей и администраторов сайта. Но при желании, плагин можно легко изменить таким образом, чтобы WordPress переключал тему по cookie или другим условиям.

<?php
/* 
Plugin Name: Theme Switcher
Plugin URI: http://codebeer.ru
Description: Different WordPress theme, depending of the current user
Author: SK
Version: 0.1.0
Author URI: http://codebeer.ru
*/

$theme_name = 'Code.Beer';
$theme_list = array();

add_action('plugins_loaded', 'start', 1);

function start() {
    if ( current_user_can('manage_options') ) {
        $GLOBALS["theme_list"] = get_theme_list();
        add_filter('stylesheet', 'load_style');
        add_filter('template', 'load_theme');
    }
}

function load_style() {
    foreach ($GLOBALS["theme_list"] as $theme) {
        if ($theme['Name'] == $GLOBALS["theme_name"]) {
            return $theme['Stylesheet'];
	}
    }	
}

function load_theme() {
    foreach ($GLOBALS["theme_list"] as $theme) {
        if ($theme['Name'] == $GLOBALS["theme_name"]) {
            return $theme['Template'];
        }
    }
}

function get_theme_list() {
    $wp_themes = array();

    foreach (wp_get_themes() as $theme) {
        $name = $theme->get('Name');
        if ( isset( $wp_themes[ $name ] ) )
            $wp_themes[ $name . '/' . $theme->get_stylesheet() ] = $theme;
        else
            $wp_themes[ $name ] = $theme;
	}

        return $wp_themes;
}