There are plenty of plugins for something like this, but there are a lot of nuances between them (who can swtich, how to switch, etc).
See theme preview tag in repository for starters.
Related Posts:
- Using OOP in themes
- How can I allow the Editor Role to change Theme Settings?
- Best way to include Bootstrap in WordPress
- Undefined offset: 0 in > […] /wp-includes/capabilities.php on line 1067
- Editing Links in the Footer of WordPress Themes with Base64 Encrypted Code?
- How to set two different themes on one WordPress? (Desktop vs. Mobile)
- How can I add a set featured image function to a theme that doesn’t already have it built in?
- Display custom_background outside wp_head()
- register_theme_directory and broken deploys
- Copying theme from Localhost to Live does not copy all theme settings with it?
- Making the Header on the Twenty Ten Theme Less Tall?
- How to create child theme with Tesseract theme?
- How do I change the fonts in the Twenty Thirteen theme?
- Register theme customizer settings when theme activates [duplicate]
- Can I obtain differents links for different installed theme?
- hfeed CSS class in Twentyeleven Theme
- Will activating a different theme preserve custom settings to current theme?
- Which is the most well coded and semantically correct naked/blank WordPress theme (based on WordPress coding standards)?
- How to change the themes “Live Preview” url within the Appearance->Themes page?
- Question about the way that wp_register_script works
- Specific theme for non logged in users
- How do I apply my CSS to a theme page?
- How do you get thumbnails to show up in the admin edit post?
- How to change the contact info at the bottom of my theme [closed]
- How to get the post-ID in my plugin?
- Parallax WordPress theme without hardcoding – possible?
- Embedded Videos (PB) – Not Available
- How does a Child Theme works?
- WordPress not displaying themes in the wp-content/themes folder
- Recommended Themes for a Developer-related Topics Blog?
- How to create child theme of already active and customized theme
- none of my css is working in my child theme
- Finding wordpress file in theme editor using the theme name
- Private theme update with zip archive without deactivating the theme
- Displaying a widget in sidebar only when no other widgets rendered?
- Upgrading from 2.9.4 to 3.0.x and with a custom theme
- Published site reverts without changes to theme
- Search form not finding content in template page
- Files empty after moving with FTP
- Full page (no WP admin menus and options) admin theme options
- How to use one theme for multiple WordPress sites?
- Make multiple pages and set template/content on theme activation?
- Need to edit themes HTML code
- Any Good WordPress Themes Compatible With The BBPress Plugin? [closed]
- Template messed up on viewing posts
- Newbie wordpress question re banner height
- How to add custom JS file in WordPress Child theme with get_theme_file_uri
- Adding the jQuery to my theme that already exists in WordPress?
- Interpretation and explanation of register sidebar
- Removing the references to the wp-content folder
- Show hyperlinks only when user is loggedin
- What data does WordPress theme update pull If there is an update?
- Cannot update a file for my theme
- Do all themes accommodate all features?
- How to reduce Header at the top of the page
- Custom fields not displaying on front end
- remove theme’s name from dashboard .. How?
- how to stop a gallery slideshow
- Change “published by”
- WordPress 2022 template, how to see the blocks added in post template on post edit?
- I cannot get an Advanced Custom Field code snippet to work – and ACF support say it should work
- Theme seems to be preventing me from adding a new page to my site
- WordPress margin issues
- 12 column grid layout
- Remove style id inline CSS in WordPress
- How to find file that placed a line in my header
- Where to find child themes?
- dynamic image path within a javascript file
- how to create a section inside a section with theme options customizer
- Warning: call_user_func() expects parameter 1 to be a valid callback
- Phone numbers showing same color as header [closed]
- theme continuous deployment from bitbucket to windows azure
- Changing themes on locally hosted webpages
- Changing admin Textarea to integrated WP editor
- Line break no working on theme
- What is the template file for topic layouts in bbPress?
- Style of a theme
- Orion theme (from theme forest) [closed]
- QA/Staging envirnoment for wordpress sites
- Showing wordpress theme demo at front end
- Diagnosing a connection reset problem
- Create /archive page in WordPress Theme
- Customising a theme
- Blog shows up without Theme/CSS styles
- Boldy theme – Regarding the images above the boxes
- Symbolic Links for themes – linking one theme to many wordpress installs
- Fatal error: Call to undefined function get_header() and BuddyPress [closed]
- A problem with functions.php file on my WordPress site
- hardened wordpress linux install
- which theme is this? [closed]
- JQuery Error in theme for .live is not a function [closed]
- How can I either move the nav bar down or create more space for the header? Theme – Ajaira
- To create a theme or use an existing one? [closed]
- Overwrite functions.php of a theme – What if the theme is updated?
- WordPress Theme redirects to the Index page – Theme customizer problem
- How to assign posts to different themes? [closed]
- Using AJAX to Update WordPress Theme
- Help with Divi logo not appearing for 10s
- How to clone a theme template from within WordPress? [closed]
- Disabling Full Site Editor (FSE)