Repository navigation
Deployment Guard 0.1.0
Initial release of Deployment Guard, which locks editorial changes during deployments and migrations while the public site stays online.
Features
- Manual editorial freeze from Tools > Deployment Guard or WP-CLI, and scheduled freeze windows evaluated against the site timezone on every relevant request (not dependent on WP-Cron).
- Content write protection in classic wp-admin and the block editor: posts, pages, custom post types, revisions, taxonomies and terms, media, navigation menus, widgets and the Customizer.
- REST API write protection (HTTP 423, error code
deployment_guard_active) and XML-RPC write protection for content-changing methods; read-only requests are untouched. deployment_guard_bypasscapability, granted to roles withmanage_optionson activation and checked independently of role names.- WP-CLI commands other than
wp deployment-guardare blocked from changing protected content during a freeze (use--user=<account with bypass>for an intentional change), and scheduled posts of protected types are held: they stay scheduled and publish normally after the freeze ends. wp deployment-guard status|enable|disable|schedule.- Admin notice during a freeze (classic screens and block editor), settings screen with a bounded activity log, per-site Multisite operation, and a
DEPLOYMENT_GUARD_FORCEconstant to force the freeze on or off.
Requirements
WordPress 6.6+ and PHP 8.1+. GPL-2.0-or-later. No telemetry and no outbound HTTP requests.
Installation
Download deployment-guard.zip below and upload it under Plugins > Add New > Upload Plugin, or unzip it into wp-content/plugins/.
SHA-256: 3d1a7f07a42caeca3e19175ccb6d1388d30a63f9004240ccae7f61e961903956
Known limitations
The freeze works through WordPress's own entry points, capability checks and content functions. Direct database changes and third-party code that writes content without capability checks are outside what it can block. See the documented limitations.
Full details: CHANGELOG.md.