Закрыть сайт Wordpress на техническое обслуживание: с плагином и без
Довольно часто на практике веб-мастерам приходится сталкиваться с необходимостью временного закрытия доступа к своим сайтам. Подход к решению этого вопроса должен быть с умом. Обычные пользователи не должны сталкиваться с трудностями при обращении к ресурсу, когда на нем идет обновление или другие технические работы. Лучшим вариантом будет временная остановка сайта и появление надписи при обращении к нему, типа: «Сайт временно недоступен, попробуйте зайти через 2 минуты».
К большому сожалению, WordPress не предусматривает решения подобной проблемы с помощью встроенных инструментов. Но, благодаря гибкости CMS, возможно воспользоваться установкой специального плагина. Есть еще и второй метод, предусматривающий небольшие ручные правки в коде движка. Давайте рассмотрим решение данной задачи этими двумя способами.
Закрытие сайта с помощью плагина.
Существует достаточно много различных плагинов, выполняющих данную функцию. Однако мы остановимся на WP Maintenance Mode, являющимся одним из достаточно простых и надежных. Устанавливается он стандартно через поисковик в режиме администратора.
После того, как он был активирован, необходимо перейти в меню настроек. Достаточно использовать стандартные параметры. Устанавливаем статус «включен» и сохраняем изменения. Но имеется возможность и более детально настроить некоторые опции для себя. При желании, можно разрешить доступ к работающей версии другим группам пользователей, осуществить перенаправление на другой URL, сменить фон и текст обращения к пользователям, поставить таймер обратного отсчета и т.д.
Сайт, с включенным WP Maintenance Mode будет иметь примерно следующий вид:
Напомним, что по умолчанию администратору будет видно сайт в нормальном виде, а для того чтобы на него посмотреть глазами обычных пользователей, нужно сделать выход из режима администратора.
Режим техобслуживания без плагинов
Этот метод также является довольно простым. Для этого создадим у себя файлик .maintenance и запишем его таким образом:
<?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();
?>
После этого загружаем его в корень вашего ресурса. Теперь, когда пользователь войдет на сайт, он увидит следующее сообщение:
Когда настанет время, необходимое для возвращения сайта в работающий режим, достаточно этот файл удалить или просто переименовать.