Try hooking on all these: (But I guess you'd have to do it from a plugin, since doing it from theme `functions.php` might be too late). E.g.: /* Plugin Name: test Description: switchtest Version: 0.1.0 */ add_filter( 'template', 'yourthing_switch_theme' ); add_filter( 'option_template', 'yourthing_switch_theme' ); add_filter( 'option_stylesheet', 'yourthing_switch_theme' ); add_filter( 'pre_option_stylesheet', 'yourthing_switch_theme' ); function yourthing_switch_theme( $theme ) { if ( is_user_logged_in() ) { return $theme; } else { return 'waiting'; } }