
Причина вопроса, указанного в названии статьи, может проявляться от самых разных случаев. Реконструкция, какие-нибудь неполадки, обновление функциональности и прочие поводы могут толкнуть на временное отключение сайта. И если посмотреть со стороны разработчиков, то — это правильное решение. Зачем пользователю испытывать неудобство во время технических работ, что явно отобразится на нестабильности ресурса. В сегодняшней статье рассмотрим один вариант, который позволит закрыть доступ к сайту и вывести сообщение с извинениями за неудобство.
Метод, описанный в данной статье, будет реализован с помощью отдельного кода, созданием дополнительных файлов и закачкой их на сервер. В принципе, это стандартная процедура для выполнения какой-либо задачи без использования плагина. Но если в чем-то сомневаетесь, то всегда можете протестировать ту или иную функцию на локальном сервере. Давайте перейдем к делу.
Шаг 1-й.
На первом шаге создадим основной файл. Откройте любой редактор или стандартный блокнот, добавьте в него ниже представленный код и сохраните файл под именем .maintenance (точка вначале обязательна). В процессе обновления платформы, плагинов, тем, WordPress автоматически создает этот файл на время обслуживания. Но в данном случае мы включим технический режим вручную на то время, которое пожелаем. Полученный файл необходимо загрузить в корневую директорию обычно это public_html, там находятся движок WordPress.
<?php
function is_user_logged_in() {
$loggedin = false;
foreach ( (array) $_COOKIE as $cookie => $value ) {
if ( stristr($cookie, 'wordpress_logged_in_') )
$loggedin = true;
}
return $loggedin;
}
if ( ! stristr($_SERVER['REQUEST_URI'], '/wp-admin') && ! stristr($_SERVER['REQUEST_URI'], '/wp-login.php') && ! is_user_logged_in() )
$upgrading = time ();?>
После этих действий выйдите из админ-панели (в правом верхнем углу ссылка), перезагрузите страницу, и вы увидите большую надпись на белом фоне во весь экран: «Сайт недоступен и т.д.». В таком режиме он будет находиться до тех пор, пока не удалите ранее созданный файл с сервера. Но вы можете, под ролью администратора, заходить на сайт, как обычно и, вам будет доступно все содержимое. В указанном выше коде есть несколько важных деталей:
- Адрес для входа в администраторскую зону прописан по умолчанию http://site.ru/wp-admin. Если вы изменяли URL входа, то в коде замените wp-admin на тот, который у вас установлен. В противном случае не сможете тогда попасть в админ-панель.
-
В коде можно указать точное время отключения режима «технического обслуживания». В последней строчке достаточно заменить
$upgrading = time ();на$upgrading = 1442743117;это формат unix timestamp. Чтобы не заморачиваться вычислением даты в секунды лучше воспользоваться конвертером (здесь). По окончании заданного времени и еще плюс дополнительных 10 минут WordPress выйдет из режима «техническое обслуживание».
Шаг 2-й.
На втором шаге займемся оформлением внешнего вида страницы с сообщением о технических работах. Необходимо создать еще один файл с именем maintenance.php и поместить в него ниже представленный код. После чего загрузить на сервер в каталог wp-content.
<?php
$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' );
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Режим технического обслуживания</title>
<style>
.background { background: url(указать полный путь к картинке/images/bg-maintenance.jpg) no-repeat center top fixed; background-size: cover;
background-size: 150%;
animation: panning 50s infinite linear;
}
@keyframes panning {
0% {
background-position: 0% 0%;
}
25% {
background-position: 100% 100%;
}
50% {
background-position: 100% 0%;
}
75% {
background-position: 0 100%;
}
150% {
background-position: 0 0;
}
}
.content {
background: rgba(255, 255, 255, 0.8) url("указать полный путь к картинке/tools-maintenance.png") no-repeat scroll 50% 20px;
border-radius: 10px;
margin: 100px auto 0;
text-align: center;
width: 605px;
padding:20px 0px;
box-shadow: 0 5px 0 rgba(0, 0, 0, 0.25);
font-family: "Times New Roman";
}
.content h1 {
font-size: 30px;
font-weight: 700;
margin: 85px 0 50px;
color: #444;
}
.content p {
color: #222222;
font-size: 17px;
line-height: 1.3;
padding: 0 35px;
word-wrap: break-word;
}
</style>
</head>
<body class="background">
<div class="content">
<h1>Режим технического обслуживания</h1>
<p>В данный момент сайт находится на техническом обслуживании.
Приносим свои извинения за временные неудобства.</p>
<p>Спасибо за понимание.</p>
</div>
</body>
</html>
<?php die(); ?>
В результате получится вот такая страница:
На этом все.
Помогло! Спасибо большое! От души!
Не за что! Приходите еще)