You can hook onto `pre_option_stylesheet`. (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.: add_filter( 'pre_option_stylesheet', 'yourthing_switch_theme' ); function yourthing_switch_theme( $theme ) { if ( is_user_logged_in() ) { return $theme; } else { return 'waiting'; } }