Title: Maintenance Mode
Author: helderk
Published: <strong>25 พฤศจิกายน 2020</strong>
Last modified: 7 มีนาคม 2025

---

Search plugins

![](https://ps.w.org/hkdev-maintenance-mode/assets/icon-256x256.png?rev=2426554)

# Maintenance Mode

 By [helderk](https://profiles.wordpress.org/helderk/)

[Download](https://downloads.wordpress.org/plugin/hkdev-maintenance-mode.zip)

 * [Details](https://th.wordpress.org/plugins/hkdev-maintenance-mode/#description)
 * [Reviews](https://th.wordpress.org/plugins/hkdev-maintenance-mode/#reviews)
 *  [Installation](https://th.wordpress.org/plugins/hkdev-maintenance-mode/#installation)
 * [Development](https://th.wordpress.org/plugins/hkdev-maintenance-mode/#developers)

 [Support](https://wordpress.org/support/plugin/hkdev-maintenance-mode/)

## Description

This plugin lets you specify a maintenance mode message or HTML page for your site
and configure settings to allow specific users to bypass the maintenance mode functionality
in order to preview the site prior to public launch.

It also disables the WordPress REST API while maintenance mode is active, ensuring
that site data remains inaccessible during maintenance.

Any logged in user with WordPress administrator privileges will be allowed to view
the site regardless of the settings in the plugin. The exact privilege can be set
using a filter hook – see FAQs.

The behaviour of this can be enabled or disabled at any time without losing any 
of settings configured in its settings pane. However, deactivating the plugin is
recommended versus having it activated while disabled.

Functionality to exclude pages from maintenance mode, so only the selected pages
will be visible.

When redirect is enabled it can send 2 different header types. “200 OK” is best 
used for when the site is under development and “503 Service Temporarily Unavailable”
is best for when the site is temporarily taken offline for small amendments. If 
used for a long period of time, 503 can damage your Google ranking.

A list of IP addresses can be set up to completely bypass maintenance mode. This
option is useful when needing to allow a client’s entire office to access the site
while in maintenance mode without needing to maintain individual access keys.

Access keys work by creating a key on the user’s computer that will be checked against
when maintenance mode is active. When a new key is created, a link to create the
access key cookie will be emailed to the email address provided. Access can then
be revoked either by disabling or deleting the key.

This plugin allows four methods of notifying users that a site is undergoing maintenance:

 1. They can be presented with a message using WordPress’s wp_die() function which 
    is core function of WordPress, which makes this plugin feel and work as a part 
    of WordPress core.
 2. They can be presented with a message on a page created with the style of the current
    template.
 3. They can be presented with a custom HMTL page.
 4. They can be redirected to a static page or external URL.

## Screenshots

 * [[
 * [[
 * [[
 * [[
 * [[
 * [[
 * [[
 * [[
 * [[

## Installation

 1. Upload the `hkdev-maintenance-mode` folder to your plugins directory (usually `/
    wp-content/plugins/`).
 2. Activate the plugin through the `Plugins` menu in WordPress.
 3. Configure the settings through the `Maintenance Mode` Settings panel.

## FAQ

### How can I bypass the redirect programatically?

There is a filter which allow you to programatically bypass the redirection block:

**`hkdev_matches`**

This allows you to run pretty much any test you like, although be aware that the
whole redirection thing runs _before_ the `$post` global is set up, so WordPress
conditionals such as `is_post()` and `is_tax()` are not available.

This example looks in the `$_SERVER` global to see if any part of the URL contains“
demo”

    ```
    function my_hkdev_matches( $hkdev_matches ) {
        if ( stristr( $_SERVER['REQUEST_URI'], 'demo' ) ) 
            $hkdev_matches[] = "<!-- Demo -->";
        return $hkdev_matches;
    }
    add_filter( "hkdev_matches", "my_hkdev_matches" );`
    ```

_Props to @brianhenryie for this!_

### How can I let my logged-in user see the front end?

By default, Maintenance Mode uses the `manage_options` cap, but that is normally
only applied to administrators. As it stands, a user with a lesser permissions level,
such as editor, is able to view the admin side of the site, but not the front end.
You can change this using this filter:

**`hkdev_user_can`**

This filter is used to pass a different WordPress capability to check if the logged-
in user has permission to view the site and thus bypass the redirection, such as`
edit_posts`. Note that this is run before `$post` is set up, so WordPress conditionals
such as `is_post()` and `is_tax()` are not available. However, it’s not really meant
for programatically determining whether a user should have access, but rather just
changing the default capability to be tested, so you don’t really need to do anything
other than the example below.

    ```
    function my_hkdev_user_can( $capability ) {
        return "edit_posts";
    }
    add_filter( "hkdev_user_can", "my_hkdev_user_can" );
    ```

## Reviews

![](https://secure.gravatar.com/avatar/b7ba6d75ff46606a1538a09ac3f2bbb2c150ff82790c81b4ae206f378290efe0?
s=60&d=retro&r=g)

### 󠀁[Does what it purports to do with zero faff](https://wordpress.org/support/topic/does-what-it-purports-to-do-with-zero-faff/)󠁿

 [richardlampitt](https://profiles.wordpress.org/richardlampitt/) 19 มกราคม 2026

An excellent option for a maintenance page or a development shield. Provides a suitable
selection of comprehensive options and does not bombard the site owner / admin with
obnoxious upgrade requests nor animated distractions.

![](https://secure.gravatar.com/avatar/303645b224fffdfb2791efd37a968aa5dad1cf8af1c53760e2440fc2d0c365f3?
s=60&d=retro&r=g)

### 󠀁[One of the best free maintenance page plugins](https://wordpress.org/support/topic/one-of-the-best-free-maintenance-page-plugins/)󠁿

 [sharukhi](https://profiles.wordpress.org/sharukhi/) 6 พฤษภาคม 2025

One of the best free maintenance page plugins

![](https://secure.gravatar.com/avatar/fe68d557872a06aafc187fef45474c525e9db411018b08a817a11b7d49b66679?
s=60&d=retro&r=g)

### 󠀁[Clean, fast, effective](https://wordpress.org/support/topic/clean-fast-effective/)󠁿

 [tombekistan](https://profiles.wordpress.org/tombekistan/) 31 สิงหาคม 2024

Exactly what I need.

![](https://secure.gravatar.com/avatar/52119d437ea479f5c0a2d1371b98377d29d4531911b82659cfff14fd673802e2?
s=60&d=retro&r=g)

### 󠀁[Broke my site](https://wordpress.org/support/topic/broke-my-site-271/)󠁿

 [Alexander](https://profiles.wordpress.org/ittalentmx/) 21 สิงหาคม 2024

This plugin broke my whole site. I couldn’t even login to the admin section. Captcha
dissapeared. I had to reinstall it again. DO NOT INSTALL IT!!!!!

![](https://secure.gravatar.com/avatar/df688a104f25229ef7cf8fefccb314140317b943803c1cd084544b57fdccb2d8?
s=60&d=retro&r=g)

### 󠀁[Great plugin, fast and works fine](https://wordpress.org/support/topic/great-plugin-fast-and-works-fine/)󠁿

 [eatmyhitzz](https://profiles.wordpress.org/eatmyhitzz/) 17 สิงหาคม 2024

Straight to the point plugin, works great and the IP whitelist is a great feature.
Tried a lot of them, but this one hit the spot.

![](https://secure.gravatar.com/avatar/88230870119b0e874bd2fe695f91c6e53201482ffbcfd83db7973ae9d3d60400?
s=60&d=retro&r=g)

### 󠀁[Also useful to make a private blog](https://wordpress.org/support/topic/also-useful-to-make-a-private-blog/)󠁿

 [morrisjm](https://profiles.wordpress.org/morrisjm/) 11 สิงหาคม 2024

I use this to put a kind of “anyone with the link can access” on our family blog—
not the intended use, but it works well for it. My main wish list feature would 
be to have keys that work on a per-post (or per category or tag) basis, but understand
that’s beyond the scope of the intended purpose.

 [ Read all 14 reviews ](https://wordpress.org/support/plugin/hkdev-maintenance-mode/reviews/)

## Contributors & Developers

“Maintenance Mode” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ helderk ](https://profiles.wordpress.org/helderk/)
 *   [ jfinch3 ](https://profiles.wordpress.org/jfinch3/)
 *   [ Peter Hardy-vanDoorn ](https://profiles.wordpress.org/petervandoorn/)

“Maintenance Mode” has been translated into 2 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/hkdev-maintenance-mode/contributors)
for their contributions.

[Translate “Maintenance Mode” into your language.](https://translate.wordpress.org/projects/wp-plugins/hkdev-maintenance-mode)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/hkdev-maintenance-mode/),
check out the [SVN repository](https://plugins.svn.wordpress.org/hkdev-maintenance-mode/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/hkdev-maintenance-mode/)
by [RSS](https://plugins.trac.wordpress.org/log/hkdev-maintenance-mode/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.1.3

 * Bug fix

#### 3.1.2

 * Bug fix

#### 3.1.1

 * Updated for WordPress 6.7
 * Added functionality to disable the WordPress REST API while maintenance mode 
   is active
 * Security improvements

#### 3.0.2

 * Security improvements

#### 3.0.1

 * Code completely revised and modernized to increase possible risks and vulnerabilities
 * Implementation of various performance and security improvements

#### 2.6.0

 * Bug fix – Bypass Vulnerability

#### 2.5.0

 * Bug fix – Updated for WordPress WordPress 6.4.1
 * Minor improvements and fixes

#### 2.4.5

 * Bug fix – conflict with other plugins using Select2

#### 2.4.4

 * Minor fixes

#### 2.4.1

 * Updated for WordPress 6.2.2
 * Added new attributes to the html editor
 * Minor improvements and fixes

#### 2.3.2

 * Minor fixes

#### 2.3.1

 * Minor fixes

#### 2.3.0

 * Bug fix
 * Minor fixes

#### 2.2.6

 * Updated translations

#### 2.2.5

 * Updated for WordPress 6.1.1
 * Added functionality to resend an access key
 * Added functionality to copy access keys.
 * Added functionality to facilitate insertion of IPs
 * Minor fixes

#### 2.2.4

 * Updated for WordPress 6.0
 * Minor fixes

#### 2.2.3

 * Updated for WordPress 5.8

#### 2.2.2

 * Bug fix

#### 2.2.1

 * Minor fixes

#### 2.2.0

 * Added functionality to exclude pages from maintenance mode.
 * Firefox fix

#### 2.1.4

 * Minor fixes

#### 2.1.3

 * Added toggle switch for activating Maintenance Mode

#### 2.1.2

 * Added new allowed html Tags
 * Minor improvements

#### 2.1.1

 * Added new icon status on admin bar menu
 * Improve the uninstall function

#### 2.1

 * New settings panel interface for better usability.
 * Added status indicator on the admin bar menu.
 * Plugins ready for translation.
 * Added Portuguese translation (pt-PT)
 * Security fixes.

#### 2.0

 * First release of the new adaptation of the plugins based on the version created
   by petervandoorn and modified by jfinch3.

## Meta

 *  Version **3.1.3**
 *  Last updated **1 ปี ago**
 *  Active installations **8,000+**
 *  WordPress version ** 6.1 or higher **
 *  Tested up to **6.7.5**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/hkdev-maintenance-mode/), [Portuguese (Portugal)](https://pt.wordpress.org/plugins/hkdev-maintenance-mode/)
   และ [Russian](https://ru.wordpress.org/plugins/hkdev-maintenance-mode/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/hkdev-maintenance-mode)
 * Tags
 * [coming soon](https://th.wordpress.org/plugins/tags/coming-soon/)[developer](https://th.wordpress.org/plugins/tags/developer/)
   [maintenance](https://th.wordpress.org/plugins/tags/maintenance/)[redirect](https://th.wordpress.org/plugins/tags/redirect/)
   [under construction](https://th.wordpress.org/plugins/tags/under-construction/)
 *  [Advanced View](https://th.wordpress.org/plugins/hkdev-maintenance-mode/advanced/)

## Ratings

 4.6 out of 5 stars.

 *  [  12 5-star reviews     ](https://wordpress.org/support/plugin/hkdev-maintenance-mode/reviews/?filter=5)
 *  [  1 4-star review     ](https://wordpress.org/support/plugin/hkdev-maintenance-mode/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/hkdev-maintenance-mode/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/hkdev-maintenance-mode/reviews/?filter=2)
 *  [  1 1-star review     ](https://wordpress.org/support/plugin/hkdev-maintenance-mode/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/hkdev-maintenance-mode/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/hkdev-maintenance-mode/reviews/)

## Contributors

 *   [ helderk ](https://profiles.wordpress.org/helderk/)
 *   [ jfinch3 ](https://profiles.wordpress.org/jfinch3/)
 *   [ Peter Hardy-vanDoorn ](https://profiles.wordpress.org/petervandoorn/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/hkdev-maintenance-mode/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://paypal.me/helderk)