Options > Theme Switcher page. Don't forget to add get_theme_switcher() function in your templates...
Author: Mr Peer
Version: 2.0-JU
Author URI: http://386a.net/blog/
*/
/*
Thanks to Sidney (http://www.sidney.com/wp/) for the speedup patch.
Thanks to tech wench (http://www.techwench.com/) for translation and redirect patch.
*/
if (is_plugin_page()) {
if (isset($_POST['update_theme_switcher'])) {
$in_theme_switcher = $_POST["in_theme_switcher"];
update_option('ts_themes2', $in_theme_switcher);
?>
Instructions
- Select the themes you want to display in the switcher.
-
Use get_theme_switcher()
to call the theme switcher function.
<li><h2>Theme Switcher</h2>
<?php get_theme_switcher() ?>
</li>
Optional : get_theme_switcher('dropdown')
for dropdown menu.
\n";
foreach($theme_switcher_settings as $val) {
$arr = explode("|", $val, 2);
$template = $arr[0];
$value = $arr[1];
$ts_current_theme = $_COOKIE['wp_ts2_'.COOKIEHASH]==$template ? ' class="ts_current_theme"' : '';
$theme_switcher .= "$value\n";
}
$theme_switcher .= "";
}
elseif($format=="form" || $format=="dropdown") {
$theme_switcher = "";
}
echo $theme_switcher;
}
else {
echo "Error : please configure Theme Switcher.";
}
}
function get_ts_theme() {
if(!empty($_COOKIE['wp_ts2_'.COOKIEHASH])) {
$template = $_COOKIE['wp_ts2_'.COOKIEHASH];
}
else {
$template = get_settings('template');
}
return $template;
}
function get_ts_template() {
return get_ts_theme();
}
function get_ts_stylesheet() {
return get_ts_theme();
}
if (isset($_REQUEST["ts_theme"]) || isset($_REQUEST["switchto"])) {
$ts_theme = $_REQUEST["switchto"] ? $_REQUEST["switchto"] : $_REQUEST["ts_theme"];
if(!headers_sent()){
setcookie('wp_ts2_'. $cookiehash, $ts_theme, time() + 777000, $cookiepath);
if (isset($_REQUEST["orig_url"])) { $url = $_REQUEST["orig_url"];
header("Location:".$url);
}
else {
$url = get_settings('home');
header("Location:".$url);
}
echo "
";
}
}
if (!function_exists('wp_theme_switcher')) {
function wp_theme_switcher($style="text") {
get_theme_switcher($style);
}
}
function ts_admin_menu() {
add_options_page('Theme Switcher', 'Theme Switcher', 5, 'theme-switcher.php');
add_submenu_page('themes.php', 'Theme Switcher', 'Theme Switcher', 5, 'theme-switcher.php');
add_submenu_page('plugins.php', 'Theme Switcher', 'Theme Switcher', 5, 'theme-switcher.php');
}
add_filter('template', 'get_ts_template');
add_filter('stylesheet', 'get_ts_stylesheet');
add_action('admin_menu', 'ts_admin_menu');
}
?>