Description
Your next theme update. With a way back.
Dev Theme – Theme Development & Backups gives your WordPress theme a dedicated development copy, browser previews, verified publishing and a version history you can restore from.
Work on your theme files while regular visitors keep using the main theme. When your changes are ready, publish them from one focused dashboard. Need to revisit an earlier version? Choose a backup and restore it; the current files are backed up first.
Develop Preview Publish Restore. One workflow for the files that shape your site.
What you can do
- Create a development copy. Start with your active theme files, or refresh an existing development copy. The previous development version is backed up before replacement.
- Preview in your browser. Enable Dev Theme for your WordPress account, or use a browser cookie to share a preview with a tester.
- Publish verified files. The new copy is prepared and checked before the destination is replaced. An operation lock prevents overlapping Dev Theme copy and recovery actions.
- Keep your history. Save 10 backups per destination by default, or choose between 1 and 50. Backups are listed with their date, destination, size and the action they preceded.
- Restore a version. Browse, filter, restore or delete backups from the dashboard. Restoring first saves the current version, so it can be revisited too, subject to your retention setting.
- Work with child themes. Develop the child theme while keeping its original parent in place.
- Stay oriented. A responsive dashboard separates development, publishing and recovery, with confirmation dialogs and support for RTL layouts.
Built for theme-file workflows
Dev Theme is designed for developers, freelancers and site maintainers who want to test theme-file changes against the site’s existing content, without maintaining a second content database.
Content, plugins and the database are shared by design. Dev Theme does not clone the entire site or copy database settings between themes. Changes to content, or development code that writes to the database, affect the live database. Browser-cookie previews are intentionally available without login; they are not private access links.
Before your first publish
Test the development copy before publishing. File verification checks the copied files, not whether the theme’s PHP or design works correctly. Directory replacement has a brief transition between renames, so coordinate publishing with traffic and other file editors.
Keep backup storage outside the public web root where possible. Apache and IIS denial files are provided; Nginx needs server-level rules. Exclude the dev_theme cookie from server and CDN page caches. WP Rocket cookie exclusions and cache refreshes are attempted when its APIs are available; WP Engine integration is also included.
Support
Have a question or found an issue? Visit the Dev Theme support forum. Include your WordPress and PHP versions, theme type and the action that failed. Do not post passwords or private backup files.
Screenshots


Installation
- Install and activate Dev Theme. WordPress 4.9+, PHP 7.4+ and direct filesystem write access are required.
- Configure a dedicated private backup directory, or the appropriate HTTP denial rules for your hosting. Configure server/CDN cache exclusions for the dev_theme cookie.
- Open DEV Theme in your WordPress dashboard and choose Create development copy.
- In your user profile, enable Use the development theme for my account and save. Alternatively, set the browser cookie dev_theme=enabled and reload.
- Edit and test the files under wp-content/themes/dev-theme. Check the main theme in a browser without development preview enabled.
- Choose Publish to main theme when ready. Use Version history to restore a backup or adjust how many versions are retained.
FAQ
-
Is this a full staging site?
-
No. Dev Theme copies theme files only. Content, plugins, users and the database remain shared. Theme settings stored in the database are not synchronized between theme directory names.
-
Who can see the development theme?
-
An account with development preview enabled, or any browser with dev_theme=enabled. The cookie works without login and is not an access-control mechanism. Clear it and disable the profile setting to return to the main theme.
-
How many backups are kept?
-
The default is 10 per destination; choose 1–50 in the dashboard. Older versions are removed only after a successful replacement of that destination. Existing legacy -bk folders are preserved but are not imported into the new history.
-
What happens if publishing fails?
-
The copy is prepared and verified before replacement. A failed swap attempts to restore the previous directory. A recovery journal helps the next authorized operation recover an interrupted swap. If files no longer match the recorded versions, recovery stops and preserves them for inspection.
-
Are child themes supported?
-
Yes. Dev Theme copies the active child theme and keeps using its original parent. Changes to the parent itself remain shared.
-
Where are backups stored?
-
By default, in a dedicated randomized directory under wp-content. Prefer a directory outside the public web root using the dev_theme_backup_directory filter. On Nginx, explicitly deny HTTP access to backup and working directories. Configure exclusions in any cache that serves pages before WordPress loads.
-
Who can publish or restore?
-
Users need manage_options and edit_theme_options, and WordPress must allow file modifications. Multisite requires a Super Admin because theme files are shared across the network. Symbolic links and Windows junctions are not supported in theme copies.
Contributors & Developers
“Dev Theme – Theme Development & Backups” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Dev Theme – Theme Development & Backups” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.0.2
- Keep the plugin page source in English and provide a separate Hebrew readme translation for WordPress.org.
- Preserve the Hebrew locale banners and the existing theme publishing and recovery behavior.
2.0.1
- Added a clear plugin name: Dev Theme – Theme Development & Backups.
- Added the missing short description and expanded the plugin page with English and Hebrew explanations, installation steps and FAQs.
- Added a new plugin icon, English and Hebrew banners, and dashboard screenshots for WordPress.org.
- Theme copying, publishing, backups and recovery behavior are unchanged from 2.0.0.
2.0.0
- Added a redesigned responsive dashboard with version history, destination filters and confirmation dialogs.
- Added verified, timestamped backups, restoration and deletion. Keep 1-50 backups per destination (default: 10).
- Added staged, hash-verified copying, operation locks, rollback and recovery journals.
- Replaced GET deployment links with permission-checked POST actions and nonces.
- Added checked filesystem operations, path validation and safe symlink deletion; copies containing symlinks are rejected.
- Added fallback to the main theme when the development copy is unavailable.
- Fixed profile checkbox saving, preview detection and WP Engine method checks.
- Added WP Rocket cookie exclusion, configuration refresh and cache clearing after copies and restores.
- Requires PHP 7.4+ and WordPress 4.9+. Direct filesystem write access is required.
- Existing -bk folders are preserved, but are not imported into version history.
- Pre-commit review fixes: Windows junction detection, recovery hash validation, OPcache invalidation, numeric filenames, early preview initialization and stale-form protection.
- Management honors WordPress file-modification policy and requires Super Admin on Multisite. Dedicated backup storage is bound to its themes directory.
1.2.0
- Added WP Rocket auto cache clearing.
- Added option to enable Dev Theme via cookie for non logged in tests.
1.1.0
- Added WP Engine auto cache clearing and auto file permissions resetting.
1.0.7
- Added function dth_is_dev_theme(), returns true if Dev Theme is actually working.
