Функция "wp_maintenance" проверяет существование файла ".maintenance" в корневой папке сайта. Если файл существует, то вместо сайта на экран будет выведен текст-заглушка, а дальнейшая загрузка сайта будет остановлена. Сама система WordPress использует этот механизм при обновлении, закрывая сайт от посетителей на время апгрейда.
У функции "wp_maintenance" нет аргументов и параметров:
wp_maintenance();
Чтобы изменить содержание заглушки сайта, необходимо создать файл по адресу /wp-content/maintenance.php
. Приведём пример содержания такого файла:
<?php
wp_load_translations_early();
$protocol = $_SERVER["SERVER_PROTOCOL"];
if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol )
$protocol = 'HTTP/1.0';
header( "$protocol 503 Service Unavailable", true, 503 );
header( 'Content-Type: text/html; charset=utf-8' );
header( 'Retry-After: 600' );
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"<?php if ( is_rtl() ) echo ' dir="rtl"'; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Сайт закрыт на обслуживание</title>
</head>
<body>
<div style="max-width:800px; margin:100px auto; text-align:center;">
<h1>Сайт закрыт на техническое обслуживание</h1>
<p>Пожалуйста, подождите несколько минут...</p>
</div>
</body>
</html>
Чтобы отключить режим обслуживания сайта, необходимо удалить файл ".maintenance" из корня сайта. Тогда заглушка будет снята и сайт станет доступен для посетителей.Помимо этого существует механизм снятия заглушки по таймеру. Достаточно в файл ".maintenance" добавить переменную с названием "$upgrading" со значением равным количеству UNIX секунд, по истечении которого (плюс 600 секунд) будет снята блокировка с сайта. То есть содержание файла ".maintenance" получится таким:
<?php
$upgrading = 1605885507;