X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

Как закрыть сайт WordPress на обслуживание

Приклад
  • 2024-12-03
  • 26338 переглядів

  • Дизайн та розробка сайту

Доброго времени суток 🙂

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

Как закрыть сайт WordPress на обслуживание

В этой статье я покажу 3 способа, как закрыть сайт WordPress на доработку и вывести сообщение об этом. При этом админ часть будет доступной и работать для внесения изменений.

Способ №1

Первый способ, предоставили нам сами разработчики WordPress. Хоть в административной части WordPress и нет такого пункта, который бы позволил просто закрывать сайт на доработку, возможность сделать это все же есть.

У Вас должен быть доступ к папкам сайта, а именно корневому каталогу, где и установлен WordPress. В нем нужно создать файл - .maintenance.

Обратите внимание на точку перед названием файла. Это не ошибка, это обязательное условие. У Файла нет расширения, это просто название с точкой впереди - .maintenance
Создавать файл лучше всего в программах для верстки, а не в обычном блокноте. Например, в программе - Notepad++

Далее, нужно в этот файл добавить следующий код:

<?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();
}
?>

После сохранения изменений, Ваш сайт станет недоступным для посетителей. Так же выведется сообщение по-умолчанию - Сайт ненадолго закрыт на техническое обслуживание. Зайдите через минуту.

Чтобы вновь разрешить доступ к сайту, переименуйте файл .maintenance или удалите его. При новом закрытии сайта, вновь восстановите его.

ВАЖНО! У данного способа, как по мне, есть один важный изъян. Хоть данный метод и создан самим WordPress, мне не понятно одно. Если сайт закрыть этим способом, то доступ закрыть только гостям. Если пользователи авторизовались, то они будут видеть сайт и закрытие сайта их не коснется. Это работает даже для тех у кого статус - Подписчик. Если на Вашем сайте разрешена регистрация и авторизация, то данный способ, скорее всего, не для Вас. Лично мне не понятно, почему так. Неужели нельзя было сделать доступ только для администраторов.

Способ №2

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

Чтобы этим способом закрыть сайт на обслуживание, Вы должны открыть файл функций текущей темы - functions.php. В самый его конец или начало добавляем вот такой вот код:

function wp_maintenance_mode(){
if(!current_user_can('edit_themes') || !is_user_logged_in()){
wp_die('<h1 style="color:red">Сайт находится на техническом обслуживании</h1><br />Как только работы будут завершены мы снова с вами встретимся!'); }
}
add_action('get_header', 'wp_maintenance_mode');

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

В отличии от первого способа, данный способ закрывает сайт для всех кроме администратора, что не может не радовать.

Способ №3

Наверное самый простой для начинающих вебмастеров, является этот способ. Суть его в том, чтобы просто скачать и установить плагин, который делает то, что было описано в двух способах выше.

Самые популярные плагины, которые я встречал:

  • WP Maintenance Mode
  • Simple Maintenance plugin
  • Tidio Maintenance Mode

Поделится впечатления об использовании, какого-либо не могу. Я плагины не особо использую. Я предпочитаю способ №1 или №2. Какой способ лучше подойдет Вам, решать тоже Вам. Надеюсь, Вам поможет данная статья и Вы сможете использовать любой из способов.

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 12, в среднем: 4.3 из 5
Читайте також

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078