{"id":277240,"date":"2026-01-29T15:56:28","date_gmt":"2026-01-29T15:56:28","guid":{"rendered":"https:\/\/en-ca.wordpress.org\/plugins\/block-theme-maintenance\/"},"modified":"2026-02-13T00:53:54","modified_gmt":"2026-02-13T00:53:54","slug":"planned-outage","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/planned-outage\/","author":3657560,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.1","stable_tag":"1.2.1","tested":"6.9.4","requires":"6.3","requires_php":"7.0","requires_plugins":null,"header_name":"Planned Outage for Block Themes","header_author":"Troy Chaplin","header_description":"Simple maintenance mode for block themes. Activate, create a templates\/maintenance.html and style to match your brand.","assets_banners_color":"9f7a6e","last_updated":"2026-02-13 00:53:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":0,"downloads":288,"num_ratings":1,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"areziaal","date":"2026-01-29 15:56:19"},"1.1.0":{"tag":"1.1.0","author":"areziaal","date":"2026-02-08 12:32:44"},"1.2.0":{"tag":"1.2.0","author":"areziaal","date":"2026-02-11 16:35:33"},"1.2.1":{"tag":"1.2.1","author":"areziaal","date":"2026-02-13 00:53:54"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3449795,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3449795,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3449795,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.2.0","1.2.1"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[211323,802,732,1281],"plugin_category":[52],"plugin_contributors":[231290],"plugin_business_model":[],"class_list":["post-277240","plugin","type-plugin","status-publish","hentry","plugin_tags-block-theme","plugin_tags-coming-soon","plugin_tags-maintenance","plugin_tags-maintenance-mode","plugin_category-performance","plugin_contributors-areziaal","plugin_committers-areziaal"],"banners":{"banner":"https:\/\/ps.w.org\/planned-outage\/assets\/banner-772x250.png?rev=3449795","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/planned-outage\/assets\/icon-128x128.png?rev=3449795","icon_2x":"https:\/\/ps.w.org\/planned-outage\/assets\/icon-256x256.png?rev=3449795","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Planned Outage for Block Themes is a lightweight plugin that enables maintenance mode for WordPress block themes. When enabled, logged-out visitors see your custom maintenance template while logged-in users can browse the site normally.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Uses native block theme templates<\/li>\n<li>Create maintenance pages in the Site Editor or as theme files<\/li>\n<li>Logged-in users bypass maintenance mode<\/li>\n<li>Configurable expected duration (Retry-After header)<\/li>\n<li>Pre-launch mode for sites that aren't live yet<\/li>\n<li>Optional search engine bot access during maintenance<\/li>\n<li>Bypass link to let non-logged-in users preview the site during maintenance<\/li>\n<li>Admin bar indicator when maintenance mode is active<\/li>\n<li>Duration warning after 3 days of maintenance (except in pre-launch mode)<\/li>\n<li>Returns proper 503 status code for SEO<\/li>\n<li>Cache plugin detection with admin warning and automatic cache flushing<\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>WordPress 6.3 or higher<\/li>\n<li>A block theme (like Twenty Twenty-Five)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to your \/wp-content\/plugins\/ folder.<\/li>\n<li>Go to the <strong>Plugins<\/strong> page and activate the plugin.<\/li>\n<li>Create a maintenance template (see FAQ below).<\/li>\n<li>Go to <strong>Settings &gt; Planned Outage<\/strong> and enable it.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20create%20a%20maintenance%20template%3F\"><h3>How do I create a maintenance template?<\/h3><\/dt>\n<dd><p>You have two options:<\/p>\n\n<ol>\n<li><strong>Site Editor:<\/strong> Go to Appearance &gt; Editor &gt; Templates, create a new template named \"maintenance\"<\/li>\n<li><strong>Theme file:<\/strong> Add a <code>maintenance.html<\/code> file to your theme's <code>\/templates\/<\/code> folder<\/li>\n<\/ol><\/dd>\n<dt id=\"who%20can%20see%20the%20site%20when%20maintenance%20mode%20is%20enabled%3F\"><h3>Who can see the site when maintenance mode is enabled?<\/h3><\/dt>\n<dd><p>All logged-in users can browse the site normally. Only logged-out visitors see the maintenance template. You can also enable search engine bots to bypass maintenance mode, or generate a bypass link for non-logged-in users.<\/p><\/dd>\n<dt id=\"what%20is%20the%20expected%20duration%20setting%3F\"><h3>What is the Expected Duration setting?<\/h3><\/dt>\n<dd><p>This sets the Retry-After HTTP header, which tells search engines how long to wait before checking your site again. Options range from 30 minutes to 1 day. You can also select \"Pre-Launch (indefinite)\" for sites that aren't live yet, which disables duration tracking and admin warnings.<\/p><\/dd>\n<dt id=\"what%20is%20the%20bypass%20link%3F\"><h3>What is the Bypass Link?<\/h3><\/dt>\n<dd><p>When enabled, the plugin generates a secret URL you can share with anyone who needs to view the site during maintenance without logging in. A 12-hour cookie is set on first visit so they can navigate freely. You can regenerate the link at any time to invalidate the previous one.<\/p><\/dd>\n<dt id=\"should%20i%20enable%20search%20engine%20access%3F\"><h3>Should I enable Search Engine Access?<\/h3><\/dt>\n<dd><p>For short maintenance periods (under 2 hours), the default settings are fine. For longer maintenance (over 2 hours), consider enabling search engine access. For maintenance lasting more than a day, always enable it to prevent pages from being removed from search indexes.<\/p><\/dd>\n<dt id=\"what%20status%20code%20is%20returned%3F\"><h3>What status code is returned?<\/h3><\/dt>\n<dd><p>The plugin returns a 503 (Service Unavailable) status with a Retry-After header, which tells search engines the site is temporarily unavailable.<\/p><\/dd>\n<dt id=\"will%20this%20work%20with%20caching%20plugins%3F\"><h3>Will this work with caching plugins?<\/h3><\/dt>\n<dd><p>The plugin detects popular full-page cache plugins (Surge, WP Super Cache, W3 Total Cache, WP Fastest Cache, LiteSpeed Cache, WP Rocket) and displays a warning on the settings page when one is active. Caches are automatically flushed when settings are saved to ensure the maintenance page is served immediately.<\/p>\n\n<p>Server-level caches (Nginx FastCGI cache, Varnish, Cloudflare, etc.) cannot be detected or flushed by the plugin. If maintenance mode is not working and you use server-level caching, flush that cache manually.<\/p><\/dd>\n<dt id=\"how%20to%20uninstall%20the%20plugin%3F\"><h3>How to uninstall the plugin?<\/h3><\/dt>\n<dd><p>Simply deactivate and delete the plugin. The plugin stores options prefixed with <code>pobt_<\/code> which are removed when you deactivate the plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>Unreleased<\/h4>\n\n<ul>\n<li>Added cache plugin detection with admin warning when maintenance mode is active<\/li>\n<li>Added automatic cache flushing when plugin settings are saved<\/li>\n<li>Added support for detecting Surge, WP Super Cache, W3 Total Cache, WP Fastest Cache, LiteSpeed Cache, and WP Rocket<\/li>\n<li>Added fallback cache detection via advanced-cache.php dropin and wp-content\/cache\/ directory<\/li>\n<li>Added no-cache headers on all bypass responses to prevent reverse proxy cache poisoning<\/li>\n<li>Fixed bypass link, logged-in user, and bot responses poisoning server-level caches<\/li>\n<li>Fixed maintenance template not rendering when a static front page is set in Settings &gt; Reading<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added bypass link feature for sharing preview access with non-logged-in users<\/li>\n<li>Added pre-launch mode (indefinite duration) that disables time tracking and admin warnings<\/li>\n<li>Bypass link sets a 12-hour cookie for seamless navigation<\/li>\n<li>Regenerate bypass link to invalidate previous links<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Simple maintenance mode for block themes. Shows a maintenance template to logged-out visitors.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/277240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=277240"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/areziaal"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=277240"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=277240"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=277240"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=277240"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=277240"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=277240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}