WordPress Version: 5.4
/**
* Die with a maintenance message when conditions are met.
*
* Checks for a file in the WordPress root directory named ".maintenance".
* This file will contain the variable $upgrading, set to the time the file
* was created. If the file was created less than 10 minutes ago, WordPress
* enters maintenance mode and displays a message.
*
* The default message can be replaced by using a drop-in (maintenance.php in
* the wp-content directory).
*
* @since 3.0.0
* @access private
*
* @global int $upgrading the unix timestamp marking when upgrading WordPress began.
*/
function wp_maintenance()
{
if (!file_exists(ABSPATH . '.maintenance') || wp_installing()) {
return;
}
global $upgrading;
require ABSPATH . '.maintenance';
// If the $upgrading timestamp is older than 10 minutes, don't die.
if (time() - $upgrading >= 600) {
return;
}
/**
* Filters whether to enable maintenance mode.
*
* This filter runs before it can be used by plugins. It is designed for
* non-web runtimes. If this filter returns true, maintenance mode will be
* active and the request will end. If false, the request will be allowed to
* continue processing even if maintenance mode should be active.
*
* @since 4.6.0
*
* @param bool $enable_checks Whether to enable maintenance mode. Default true.
* @param int $upgrading The timestamp set in the .maintenance file.
*/
if (!apply_filters('enable_maintenance_mode', true, $upgrading)) {
return;
}
if (file_exists(WP_CONTENT_DIR . '/maintenance.php')) {
require_once WP_CONTENT_DIR . '/maintenance.php';
die;
}
require_once ABSPATH . WPINC . '/functions.php';
wp_load_translations_early();
header('Retry-After: 600');
wp_die(__('Briefly unavailable for scheduled maintenance. Check back in a minute.'), __('Maintenance'), 503);
}