В этой статье я покажу 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. Какой способ лучше подойдет Вам, решать тоже Вам. Надеюсь, Вам поможет данная статья и Вы сможете использовать любой из способов.
На этом все, спасибо за внимание. 🙂