Как отключить WordPress сайт на техническое обслуживание

техническое обслуживание

Причина вопроса, указанного в названии статьи, может проявляться от самых разных случаев. Реконструкция, какие-нибудь неполадки, обновление функциональности и прочие поводы могут толкнуть на временное отключение сайта. И если посмотреть со стороны разработчиков, то — это правильное решение. Зачем пользователю испытывать неудобство во время технических работ, что явно отобразится на нестабильности ресурса. В сегодняшней статье рассмотрим один вариант, который позволит закрыть доступ к сайту и вывести сообщение с извинениями за неудобство.

Метод, описанный в данной статье, будет реализован с помощью отдельного кода, созданием дополнительных файлов и закачкой их на сервер. В принципе, это стандартная процедура для выполнения какой-либо задачи без использования плагина. Но если в чем-то сомневаетесь, то всегда можете протестировать ту или иную функцию на локальном сервере. Давайте перейдем к делу.

Шаг 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 ();?>

После этих действий выйдите из админ-панели (в правом верхнем углу ссылка), перезагрузите страницу, и вы увидите большую надпись на белом фоне во весь экран: «Сайт недоступен и т.д.». В таком режиме он будет находиться до тех пор, пока не удалите ранее созданный файл с сервера. Но вы можете, под ролью администратора, заходить на сайт, как обычно и, вам будет доступно все содержимое. В указанном выше коде есть несколько важных деталей:

  1. Адрес для входа в администраторскую зону прописан по умолчанию http://site.ru/wp-admin. Если вы изменяли URL входа, то в коде замените wp-admin на тот, который у вас установлен. В противном случае не сможете тогда попасть в админ-панель.
  2. В коде можно указать точное время отключения режима «технического обслуживания». В последней строчке достаточно заменить $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(); ?>

скачать фон скачать иконку

В результате получится вот такая страница:

Посмотреть Demo

На этом все.

2 комментария
Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *